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