[hibernate-issues] [Hibernate-JIRA] Commenté: (HHH-2076) Bidirectionnal many-to-one with formula and one-to-one doesn't work
Xavier Brénuchon (JIRA)
noreply at atlassian.com
Mon Sep 18 16:47:24 EDT 2006
[ http://opensource.atlassian.com/projects/hibernate/browse/HHH-2076?page=comments#action_24544 ]
Xavier Brénuchon commented on HHH-2076:
---------------------------------------
I posted a patch for this bug : HHH-2086
> Bidirectionnal many-to-one with formula and one-to-one doesn't work
> --------------------------------------------------------------------
>
> Key: HHH-2076
> URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-2076
> Project: Hibernate3
> Type: Bug
> Components: core
> Versions: 3.2.0.cr4
> Reporter: Xavier Brénuchon
> Attachments: onetoone_bidirectionnal_formula.zip
>
>
> Hello,
> There is a bug with one-to-one association with foreign key associations (doc 5.1.11).
> I use composite-id and a formula in many-to-one :
> <class name="Person">
> <composite-id>
> <key-property name="company" type="string" column="COMPANY"/>
> <key-property name="name" type="string" column="NAME"/>
> </composite-id>
> <property name="age" type="int" column="AGE"/>
>
> <many-to-one name="car" class="Car" unique="true">
> <formula>company</formula>
> <column name="FK_CAR_REGISTRATION"/>
> </many-to-one>
> </class>
>
> <class name="Car">
> <composite-id>
> <key-property name="company" type="string" column="COMPANY"/>
> <key-property name="registration" type="string" column="REGISTRATION"/>
> </composite-id>
> <property name="color" type="string" column="COLOR"/>
> <one-to-one name="person" class="Person" property-ref="car"/>
> </class>
> I have a problem because Hibernate can't use a formula in the right part of outer join :
> DEBUG SQL:393 -
> select
> this_.COMPANY as COMPANY1_1_,
> this_.REGISTRATION as REGISTRA2_1_1_,
> this_.COLOR as COLOR1_1_,
> person2_.COMPANY as COMPANY0_0_,
> person2_.NAME as NAME0_0_,
> person2_.AGE as AGE0_0_,
> person2_.FK_CAR_REGISTRATION as FK4_0_0_,
> person2_.company as formula0_0_
> from
> Car this_
> left outer join
> Person person2_
> on this_.COMPANY=person2_.null
> and this_.REGISTRATION=person2_.FK_CAR_REGISTRATION
> DEBUG AbstractBatcher:476 - preparing statement
> DEBUG JDBCExceptionReporter:63 - could not execute query [select this_.COMPANY as COMPANY1_1_, this_.REGISTRATION as REGISTRA2_1_1_, this_.COLOR as COLOR1_1_, person2_.COMPANY as COMPANY0_0_, person2_.NAME as NAME0_0_, person2_.AGE as AGE0_0_, person2_.FK_CAR_REGISTRATION as FK4_0_0_, person2_.company as formula0_0_ from Car this_ left outer join Person person2_ on this_.COMPANY=person2_.null and this_.REGISTRATION=person2_.FK_CAR_REGISTRATION]
> java.sql.SQLException: Column not found: NULL in statement [select this_.COMPANY as COMPANY1_1_, this_.REGISTRATION as REGISTRA2_1_1_, this_.COLOR as COLOR1_1_, person2_.COMPANY as COMPANY0_0_, person2_.NAME as NAME0_0_, person2_.AGE as AGE0_0_, person2_.FK_CAR_REGISTRATION as FK4_0_0_, person2_.company as formula0_0_ from Car this_ left outer join Person person2_ on this_.COMPANY=person2_.null and this_.REGISTRATION=person2_.FK_CAR_REGISTRATION]
> at org.hsqldb.jdbc.Util.throwError(Unknown Source)
> at org.hsqldb.jdbc.jdbcPreparedStatement.<init>(Unknown Source)
> at org.hsqldb.jdbc.jdbcConnection.prepareStatement(Unknown Source)
> at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:497)
> at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:415)
> at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:139)
> at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1561)
> at org.hibernate.loader.Loader.doQuery(Loader.java:661)
> at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
> at org.hibernate.loader.Loader.doList(Loader.java:2144)
> at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2028)
> at org.hibernate.loader.Loader.list(Loader.java:2023)
> at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:95)
> at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1569)
> at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:283)
> at org.hibernate.impl.CriteriaImpl.uniqueResult(CriteriaImpl.java:305)
> at org.hibernate.test.onetoone.bidirectionnalformula.OneToOneBidirectionalFormulaTest.testReadOneToOneBidirectionalFormula(OneToOneBidirectionalFormulaTest.java:47)
> In fact this problem is linked with HHH-944. Soon, I will send a patch which corrects this bug and makes an evolution for HHH-944.
> Testcase in onetoone_bidirectionnal_formula.zip :org.hibernate.test.onetoone.bidirectionnalformula.OneToOneBidirectionalFormulaTest
--
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