You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-dev@db.apache.org by "Jakob Braeuchi (JIRA)" <ji...@apache.org> on 2005/10/28 22:43:55 UTC

[jira] Commented: (OJB-64) Correct handling of 1:n references, when the FK-field is declared in the super-classes instead of the referenced class

    [ http://issues.apache.org/jira/browse/OJB-64?page=comments#action_12356236 ] 

Jakob Braeuchi commented on OJB-64:
-----------------------------------

 testcase generates this sql:

SELECT A0.OBJ_ID,A0.NAME
FROM INHERITANCE_CONSORTIUM A0
INNER JOIN INHERITANCE_SHAREHOLDER A1 ON A0.OBJ_ID=A1.FK_CONSORTIUM
INNER JOIN INHERITANCE_MANAGER A2 ON A1.OBJ_ID=A2.OBJ_ID AND A1.OBJ_ID_2=A2.OBJ_ID_2
INNER JOIN INHERITANCE_EXECUTIVE A3 ON A2.OBJ_ID=A3.OBJ_ID AND A2.OBJ_ID_2=A3.OBJ_ID_2
INNER JOIN INHERITANCE_EMPLOYEE A4 ON A3.OBJ_ID=A4.OBJ_ID AND A3.OBJ_ID_2=A4.OBJ_ID_2
WHERE ((A0.NAME = ?) AND A1.SHARE_ = ?) AND A4.NAME = ?

SqlException : Column not found: FK_CONSORTIUM


in the correct sql the joins for MANGER / SHAREHOLDER are flipped :!

SELECT A0.OBJ_ID,A0.NAME
FROM INHERITANCE_CONSORTIUM A0
INNER JOIN INHERITANCE_MANAGER A1 ON A0.OBJ_ID=A1.FK_CONSORTIUM
INNER JOIN INHERITANCE_SHAREHOLDER A2 ON A1.OBJ_ID=A2.OBJ_ID AND A1.OBJ_ID_2=A2.OBJ_ID_2
INNER JOIN INHERITANCE_EXECUTIVE A3 ON A2.OBJ_ID=A3.OBJ_ID AND A2.OBJ_ID_2=A3.OBJ_ID_2
INNER JOIN INHERITANCE_EMPLOYEE A4 ON A3.OBJ_ID=A4.OBJ_ID AND A3.OBJ_ID_2=A4.OBJ_ID_2
WHERE ((A0.NAME = ?) AND A2.SHARE_ = ?) AND A4.NAME = ? 

> Correct handling of 1:n references, when the FK-field is declared in the super-classes instead of the referenced class
> ----------------------------------------------------------------------------------------------------------------------
>
>          Key: OJB-64
>          URL: http://issues.apache.org/jira/browse/OJB-64
>      Project: OJB
>         Type: Bug
>   Components: JDO-API, ODMG-API, OTM-API, PB-API
>     Versions: 1.0.3
>     Reporter: Armin Waibel

>
> Problem is the correct handling of 1:n references, when the FK-field is declared in the super-classes.
> Example:
> Employee<--Manager<--Shareholder 
> Class 'Consortium' has a 1:n to Shareholder but the FK to Consortium is declared in Manager, 
> Consortium reference look like
> <collection-descriptor
>     name="shareholders"
>     element-class-ref="org.apache.ojb.broker.InheritanceMultipleTableTest$Shareholder"
>     proxy="false"
>     auto-retrieve="true"
>     auto-update="object"
>     auto-delete="object"
> >
>     <inverse-foreignkey field-ref="consortiumKey"/>
> </collection-descriptor>
> But the 'consortiumKey' is declared in Manager (e.g. because we want to introduce a second 1:n containing all Manager).
> More detail see InheritanceMultipleTableTest#testInheritedReferences()

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-dev-help@db.apache.org