Hi Paul,

So partial entities are essentially ORM model "mixins". A neat idea, but 
unfortunately not supported by Cayenne. So you'd need to recreate the contents 
of each partial entity insider every concrete entity.

Andrus

> On Aug 31, 2024, at 9:51 PM, Paul Hoadley <pa...@logicsquad.net> wrote:
> 
> Hello,
> 
> As part of a review of how we might migrate from EOF → Cayenne, I ran into 
> our usage of Project Wonder's "partial entities":
> 
> https://jenkins.wocommunity.org/job/Wonder7/lastSuccessfulBuild/javadoc/er/extensions/partials/package-summary.html
> 
> In brief, this feature allows you to have a "base" entity, say "User", which 
> you might have in a library-style project shared by multiple applications. 
> Maybe it has attributes like "firstName", "lastName" and "password". Then, at 
> the application level, you can create a "partial" entity, say "FooUser", on 
> the "User" base entity. Maybe FooUser has an attribute "isSupervisor", 
> relevant only to this app. At runtime, the models are merged such that User 
> is the union of its properties and FooUser's properties, and the underlying 
> table has all of these columns. The backing classes are distinct, though: in 
> general, you'd work with Users, but if you need a FooUser, you ask the 
> relevant User for its FooUser. The win is that you're not re-inventing User 
> for every new app. It resembles single table inheritance, but FooUser is not 
> a subclass of User.
> 
> How would I do this in Cayenne?
> 
> 
> -- 
> Paul Hoadley
> https://logicsquad.net/
> https://www.linkedin.com/company/logic-squad/
> 

Reply via email to