Hi Jérémy, There was some work done in 4.2 to make the underlying runtime more amendable to the future implementation. But the actual implementation still needs to be done.
Andrus > On Feb 16, 2020, at 8:47 PM, Jérémy DE ROYER <[email protected]> > wrote: > > Dear developers, > > I made small apps using cayenne (with webobjects and bootique too). It works > as expected. > > I’ve tried to change the eomodels of our apps with horizontal inheritance in > about 10 frameworks / eomodel. > > I did not success : we could update the app for the main classes but it’s not > that easy for inheritance accross relationships. > > So, if you need any testers to advance the implementation the horizontal > inheritance, please let me know. > > For our company, it's the last point to migrate our apps with Cayenne. > > Jérémy > > Le 13 avr. 2019 à 17:18, Jérémy DE ROYER > <[email protected]<mailto:[email protected]>> a écrit : > > Hi Andrus, > > We will do the migration during the summer, so it depends how long is « soon > » 😀 > > We built our apps as a burger with a lot of abstract classes on the main(s) > framework to be sure that every (upper) frameworks know about each other > classes even if not (really) implemented. > > As an example, > > We have (abstract) classes called « AbstractCompany » and « AbstractCustomer > » on the main framework > > On the middle commercial framework we implement classes « Invoice » and « > Quote » that are linked to « AbstractCompany » and « AbstractCustomer ». > > And… on the « e-business » framework we do implement the classe « Customer » > (that extends « AbstractCustomer ») > > And… on the « crm » framework we do implement the classe « Company » (that > extends « AbstractCompany ») > > So without any effort, the « Invoice » and « Quote » are able to > see/select/link « customer » and « company », just with adding the > framework(s) to the (final) customer app. > > I don’t know if it’s clear enough but I hope it may help to understand the > importance of horizontal inheritance as we can’t rewirte all our logic. > > Jérémy > > Le 13 avr. 2019 à 16:45, Andrus Adamchik > <[email protected]<mailto:[email protected]><mailto:[email protected]>> > a écrit : > > Hi Jérémy, > > Yes, there's still no horizontal inheritance in Cayenne. It wasn't attractive > from performance standpoint, so nobody really advocated for it to happen so > far. Now that I've finally met a number of people who care about > "horizontal", we are thinking of prioritizing it. So it may happen > (relatively) soon. > > Is the game over ? > > Not really. You can just map all those tables as separate entities. Queries > may be a little more annoying to write (especially if you have relationships > *to* the base abstract entity), but it shouldn't be a show stopper. And > outside of persistence operations the objects can all implement a single > interface, so once you get them out of DB, you'll have the ability to treat > them as children of a single ancestor. > > Andrus > > > > On Apr 13, 2019, at 4:26 PM, Jérémy DE ROYER > <[email protected]<mailto:[email protected]><mailto:[email protected]>> > wrote: > > Hello, > > I’m trying to migrate (eo)models using horizontal inheritance (over multiple > frameworks) but without any success : it’s not possible to generate the Java > classes using Cayenne Modeler. > > I did a test with only one entity (and table) : that works great (and easy). > > I’ve created a second entity (and table) : that works great and easy. > > I’ve set up an horizontal inheritance between the two entities (and table) : > Cayenne forces me to use the same table for both entities > > In the 3.0's doc, I’ve read : “As of this writing Cayenne does not support > horizontal inheritance. It may in the future”. > > Is it still true in the 4.0 ? 4.1 ? Is the game over ? (as I can not use > vertical inheritance) 🤕 > > Thank’s, > > Jérémy > > >
