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
> 
> 
> 

Reply via email to