[hibernate-issues] [Hibernate-JIRA] Commented: (HHH-1348) Join w/ Foreign Key within a Single Object not functioing
Rory Winston (JIRA)
noreply at atlassian.com
Fri Oct 13 10:37:24 EDT 2006
[ http://opensource.atlassian.com/projects/hibernate/browse/HHH-1348?page=comments#action_24796 ]
Rory Winston commented on HHH-1348:
-----------------------------------
Yeah, thats not going to work. You will need to do it at a higher level than createJoin() (trying to look at this issue myself).
> Join w/ Foreign Key within a Single Object not functioing
> ---------------------------------------------------------
>
> Key: HHH-1348
> URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-1348
> Project: Hibernate3
> Type: Bug
> Environment: Webshpere 5.0
> Reporter: Michael Lambert
>
>
> I have a legacy database I need to join into using something other than the main objects primary key and it simply wont let me join on any field other than the primary key.
> No matter what I insert into "property-ref" it ALWAYS uses the objects primary key in the inner join:
> <?xml version="1.0"?>
> <!DOCTYPE hibernate-mapping PUBLIC
> "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
> "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
> <hibernate-mapping package="com.dcx.ps.gpsis.ibsc.data.entities" default-lazy="false">
> <class
> name="HPerson"
> table="PIBPERSN">
> <cache usage="read-write" />
> <id name="id" column="I_PERSN_IBSC" type="long">
> <generator class="increment"/>
> </id>
> <timestamp name="lastUpdated" column="T_STMP_UPD" />
> <property name="lastUpdatedBy" type="string" column="I_USER_UPD" not-null="true" />
> <property name="tid" column="I_USER_LDAP" type="string" not-null="true" unique="true" />
> <property name="description" column="N_USER_LDAP" type="string" not-null="true"/>
> <set name="positions" inverse="true" cascade="save-update">
> <cache usage="read-write" />
> <key column="I_PERSN_IBSC" />
> <one-to-many class="HPosition" />
> </set>
> <join table="PUSRPRF" inverse="true">
> <key column="I_USER_LDAP" property-ref="tid" />
> <property name="firstName" type="string" column="N_FIRST" />
> <property name="lastName" type="string" column="N_LAST" />
> </join>
> </class>
> <query name="findPersonsByName">
> <![CDATA[
> from HPerson person where person.firstName like :firstname and person.lastName like :lastname
> ]]>
> </query>
> <query name="findPersonsByFirstName">
> <![CDATA[
> from HPerson person where person.firstName like :firstname
> ]]>
> </query>
> <query name="findPersonsByLastName">
> <![CDATA[
> from HPerson person where person.lastName like :lastname
> ]]>
> </query>
> <query name="findPersonByTid">
> <![CDATA[
> from HPerson person where person.tid like :tid
> ]]>
> </query>
> <query name="findPersons">
> <![CDATA[
> from HPerson
> ]]>
> </query>
> </hibernate-mapping>
> Results in the following query and error when I execute any query (in this case findPersonByTid has been run):
> could not execute query:
> [select hperson0_.I_PERSN_IBSC as I1_4_, hperson0_.T_STMP_UPD as T2_4_, hperson0_.I_USER_UPD as I3_4_, hperson0_.I_USER_LDAP as I4_4_, hperson0_.N_USER_LDAP as N5_4_, hperson0_1_.N_FIRST as N2_5_, hperson0_1_.N_LAST as N3_5_ from T5279KN.PIBPERSN hperson0_ left outer join T5279KN.PUSRPRF hperson0_1_ on hperson0_.I_PERSN_IBSC=hperson0_1_.I_USER_LDAP where hperson0_.I_USER_LDAP like ?]
> COM.ibm.db2.jdbc.DB2Exception: [IBM][CLI Driver][DB2/6000] SQL0401N The data types of the operands for the operation "=" are not compatible. SQLSTATE=42818
> Where the outter join SHOULD be hperson0_.I_USER_LDAP =hperson0_1_.I_USER_LDAP; I_PERSN_IBSC is the primary key.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
More information about the hibernate-issues
mailing list