On 04/06/2007, at 7:19 AM, Lachlan Deck wrote:

On 04/06/2007, at 6:40 AM, Lachlan Deck wrote:

On 03/06/2007, at 10:42 PM, Andrus Adamchik wrote:

2. Fetching only the base table on select should be possible, so that's probably the most obvious benefit. Originally I thought in this case users would always want to fetch the full objects, and this buys us nothing, but from the earlier emails by Lachlan, there may often be a need to iterate through just the superclass attributes. Lazy fetching of subclass table may be a better solution to that, compared to the one suggested before - instantiating superclass objects, ignoring the correct class.

Hmm. That would be nice actually and would certainly simplify any dealings with the global id. However, that may pose other problems with PostLoad(?) whereby some code that you might normally performed on PostLoad of a sub-entity may not be desired to be run when just fetching the parent. How would you discriminate between the two situations?

But taking a step back, if you're suggesting that the parent can only ever be treated as abstract then the feature request for isAbstract won't make sense anymore.

Woops. Disregard this statement. Momentary confusion of concepts ;-)

It wouldn't make sense to allow a parent to be abstract but yet never actually be capable of being instantiated. For me, I think this is a problem for the individual application to work out. By having the discriminator column you've allowed the parent to be instantiated whilst maintaining the correct global id haven't you?

Let me clarify that further by saying that I don't think it's correct to allow the creation of parent entities and then later morphing them into some sub-type. I'm only thinking of allowing the instantiating of parent entities for the purposes of fetching/ performance considerations.

And further clarifying that again - of course it's perfectly okay to create a persistent Person, for example, that is always a concrete Person. That's where I think the discriminator column comes into play when allowing the parent to be non-abstract...

with regards,
--

Lachlan Deck


Reply via email to