]
Oleg Gorobets updated HHH-2432:
-------------------------------
Attachment: testcase.zip
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
Issue Type: Bug
Components: core
Environment: 3.2.2, Sybase DB
Reporter: Stefan Krinkel
Attachments: testcase.zip
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: