[hibernate-issues] [Hibernate-JIRA] Created: (HHH-2432) Collection Mapping via "property-ref" on non-pk-column crashes

Stefan Krinkel (JIRA) noreply at atlassian.com
Mon Feb 19 10:33:47 EST 2007


Collection Mapping via "property-ref" on non-pk-column crashes
--------------------------------------------------------------

         Key: HHH-2432
         URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-2432
     Project: Hibernate3
        Type: Bug

  Components: core  
 Environment: 3.2.2, Sybase DB
    Reporter: Stefan Krinkel


Hi,
when using the following example, Hibernate attempts to pull a "getTownId()" on an Integer!
2 Tables, Village and Councillor. Village has a comp. ID (TownId, VillageId), Councillor uses
just the TownId-Part. To accomplish that, TOWN_ID is mapped twice (first in comp.key, second
as "townCode"), to be able to do a 'property-ref'.

When doing an ordinary "village.getCouncillors()" there's an IllegalArgumentException which
roots to BasicPropertyAccessor.java:145
		public Object get(Object target) throws HibernateException {
			try {
				return method.invoke(target, null);
			}
Here target is  (Integer) townId and method is "VillageId.getTownId".

        <id name="id" type="integer">
            <column name="COUNCILLOR_ID" />
            <generator class="identity"/>
        </id>
        <property name="TOWN" type="integer" >
            <column name="TOWN_ID" not-null="true" />
        </property>
==============================================


       <composite-id name="VillageId" class="Table1Id">
            <key-property name="townId" type="integer">
                <column name="TOWN_ID" />
            </key-property>
            <key-property name="villageId" type="integer">
                <column name="VILLAGE_ID" />
            </key-property>
        </composite-id>   

	<property name="townCode" type="integer" insert="false" update="false">  
            <column name="TOWN_ID" />
        </property>

        <bag name="councillors" outer-join="false" inverse="false"  >
            <key property-ref="townCode">
                <column name="TOWN_ID" not-null="true" />
            </key>
            <one-to-many class="COUNCILLOR" />
        </bag>

Needless to say, it's a legacy database, so wildly changing tables is out of question for me, it has to
work with hibernate.

Thanks

-- 
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