JoinColumn on non key field fails to populate collection
--------------------------------------------------------
Key: HHH-6204
URL:
http://opensource.atlassian.com/projects/hibernate/browse/HHH-6204
Project: Hibernate Core
Issue Type: Bug
Components: core
Affects Versions: 3.3.2, 3.6.0.Beta1, 3.6.0.Beta2, 3.6.0.Beta3, 3.6.0.Beta4,
3.6.0.CR1, 3.6.0.CR2, 3.6.0, 3.6.1, 3.6.2, 4.0.0.Alpha1, 3.6.3, 4.0.0.Alpha2, 3.6.4,
4.0.0.Alpha3
Environment: EAP 5 (hibernate 3.3.2), hibernate 3.6.x, 4.0.x , probably eap4 as
well
Reporter: Chris Sams
Attachments: CompositeKeyExample.zip
To duplicate the issue, create three tables in a database with no declared primary or
foreign keys. Map entities to two of the tables. One of these entities has a primitive
@Id; the other has an @EmbeddedId. Both entities contain an additional field used to join
with the third table and populate a collection.
This works with the entity that has a primitive @Id but for the entity with @EmbeddedId,
trying to do anything with the collection after calling the getter results in:
javax.ejb.EJBException: org.hibernate.PropertyAccessException: could not get a field
value by reflection getter of jboss.example.DoesNotWorkPk.id1
at org.jboss.ejb3.tx.Ejb3TxPolicy.handleExceptionInOurTx(Ejb3TxPolicy.java:77)
....
Caused by: org.hibernate.PropertyAccessException: could not get a field value by
reflection getter of jboss.example.DoesNotWorkPk.id1
at
org.hibernate.property.DirectPropertyAccessor$DirectGetter.get(DirectPropertyAccessor.java:58)
....
Caused by: java.lang.IllegalArgumentException: Can not set java.lang.String field
jboss.example.DoesNotWorkPk.id1 to jboss.example.DoesNotWork
at
sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:146)
I've attached a sample project. The relevant files are Works.java, DoesNotWork.java,
and DoesNotWorkPk.java
There's also data.sql along with the java files to populate a mysql db, but I think
any DB will do.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: