Hi Brian,
Brian Latimer wrote:
I have an Interface "I"
It has implementing classes A, B, and C
Classes B and C both extend class A and have a super reference to it.
If use the following:
<class-descriptor class="I">
<extent-class class-ref="A" />
</class-descriptor>
when I search via getCollectionByQuery for instances of "I" then I get
back instances of B and C with all their data and no A objects that
duplicate the id's of these objects. (all instances of A are really
either B or C, so this is what I want anyway)
This is the expected behavior.
Take care not to mix different inheritance strategies (is not
supported). This case (table-per-subclass inheritance + interface
extent) should work.
Previously (OJB1.01 and less) I seem to recall getting back both an A
and a B or and A and a C object for each id when I attempted queries of
this sort.
If instead I use:
<class-descriptor class="I">
<extent-class class-ref="C" />
<extent-class class-ref="B" />
</class-descriptor>
then I get null values for all the A class fields in the returned class
B and C objects.
Is this the expected behavior? Should the query be extent aware like this?
In further OJB versions there was a bug related to the "table per
subclass" inheritance (multiple joined tables bug) which only returns
instances of the base class (see release-notes "known issues" section of
previous versions). Think that the described behavior could be a side
effect of this bug.
regards,
Armin
I just thought I'd ask for clarification and if this was odd behavior
point it out.
thanks
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]