[
http://opensource.atlassian.com/projects/hibernate/browse/HHH-3824?page=c...
]
Sebastian Bolz updated HHH-3824:
--------------------------------
Attachment: hibernate-3.5.0-beta-3-core.patch
hibernate-3.5.0-beta-3-annotations.patch
Hi,
I have tried to work on a fix on my own and have found a possible solution for the
3.5.0-beta branch. You find attached the two patches for the affected modules (core and
annotations).
The fix was tested for JPA annotation mappings and JPA XML mappings. The Hibernate XML
mappings does not seem to need a fix, since there we would have to map a one-to-one as a
many-to-one with unique=true and that already works fine.
Please let me know, if I can do anything more to speed the process of verification and
committing of the fix.
Cheers,
Sebastian
OneToOne join by Non-primary key column throws
PropertyAccessException when join column is String
-------------------------------------------------------------------------------------------------
Key: HHH-3824
URL:
http://opensource.atlassian.com/projects/hibernate/browse/HHH-3824
Project: Hibernate Core
Issue Type: Bug
Components: query-criteria, query-hql
Affects Versions: 3.3.1
Environment: Microsoft SQL server 2005, Hibernate 3.3.1
Reporter: sathish
Attachments: hibernate-3.5.0-beta-3-annotations.patch,
hibernate-3.5.0-beta-3-core.patch, trace.txt
When i try to join 2 entities by OneToOne using a Non-primary key column, it throws the
following exception:
org.hibernate.PropertyAccessException: could not get a field value by reflection getter
of com.xxx.domain.Inventory.sku
Caused by: java.lang.IllegalArgumentException: Can not set java.lang.String field
com.inwk.estore.server.domain.Inventory.sku to java.lang.Integer
[Full stacktrace attached]
sku is the Non-primary key String join column by which im trying to do a OneToOne join
between Item and Inventory entity.
Apparently its trying to interpret Sku as an Integer column. Adding columnDefinition as
VARCHAR/String doesn't help either
Mappings for Item and Inventory are below:
class Item{
@Id
Long id;
@Column
String sku;
//some more properties
@OneToOne(optional = true)
@JoinColumn(name = "sku", referencedColumnName = "sku", insertable =
false, updatable = false)
Inventory inventory;
}
class Inventory{
@Id
Long id
@Column
String sku
@Column
Long quantity;
}
--
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....
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira