We are building a complex object model
where there are a bunch of types and sub types and we are considering
using Postgresql's table inheritance (see:
Does anyone have actual product
deployment experience with building a system that uses Apache Cayenne
on top of tables that were built using Postgresql's table inheritance
How could we get the table inheritance
to be reflected as object inheritance in the cayenne data objects.
What problems are associated with this.
What are the issues with regard to
using Apache Cayenne with table inheritance? I assume that one issue
is DB lock-in, i.e., this application will be married to Postgresql,
correct? Other databases handle this sort of thing differently than
When I do a search, how do I arrange to
get back the correct cayenne object types back?
If I just map things naively, I assume
that I would get unrelated objects, not object inheritance that match
the table inheritance. How do I get around that?
So, for example, I do a query on the
base table and find some objects that are of a more specific type.
How do I arrange to have my Java code get an instance of the more
Is it practical to create something as
in instance of the base type and later have it become something of a
more specific type when the system learns more about the object? If
so, how do I do this sort of thing?
Is using table inheritance just the