On 03/06/2007, at 6:50 PM, Andrus Adamchik wrote:

One note - in Cayenne discriminator column is implemented via a more generic entity qualifier expression (e.g. it can match multiple columns or use some custom comparison condition). This approach generally prevents a simplification of a mandatory discriminator column on a root class, although we may actually work around it and start by implementing a simplified case (i.e. support entity qualifiers in the form "attribute = constant" on all subentities).

I am still entertaining the idea that we can support vertical inheritance without a designator column, and I don't think that having such column in place is such a big shortcut in implementation. After all the logic will be the same as with horizontal inheritance - sublcass criteria is an existence of a row in the subclass table).

My understanding of the need for a discriminator column (from eof) is
- it's only necessary if the parent is not abstract, and
- you plan on fetching/instantiating the parent without needing to fetch the characteristics of the sub-entities so as to distinguish them.

That seems to lend itself to utilising the current single-table implementation where such a column is used.

How do you envisage this working otherwise?

with regards,
--

Lachlan Deck



Reply via email to