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]

Reply via email to