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