Cascade delete and ternary association after upgrade
----------------------------------------------------
Key: HHH-2690
URL:
http://opensource.atlassian.com/projects/hibernate/browse/HHH-2690
Project: Hibernate3
Issue Type: Bug
Components: core
Affects Versions: 3.2.4.sp1, 3.2.4, 3.2.3, 3.2.2, 3.2.1
Environment: hsqldb, jvm 1.6.0_01-ea, ubuntu
Reporter: Przemek Dyk
Attachments: manytest.zip
My classes:
public class Product {
private long id;
private String name;
private Map/*<Attribute,AttributeValue>*/ attributeValues;
//getters/setters/hashcode/equals
}
public class AttributeValue {
private long id;
private String value;
private Product product;
private Attribute attribute;
//getters/setters/hashcode/equals
}
public class Attribute {
private long id;
private String name;
//getters/setters/hashcode/equals
}
Fragment of mapping:
<class name="Product">
<id name="id" column="id" type="long"
unsaved-value="0">
<generator class="native"/>
</id>
<property name="name" not-null="true"/>
<map name="attributeValues" lazy="true" inverse="false"
cascade="all-delete-orphan">
<key column="product_id" not-null="true"/>
<map-key-many-to-many column="attribute_id"
class="Attribute"/>
<one-to-many class="AttributeValue"/>
</map>
</class>
... and my exception after upgrading hibernate in my application.
2007-06-27 20:08:54 org.hibernate.property.BasicPropertyAccessor$BasicGetter get
SEVERE: IllegalArgumentException in class: com.mycompany.Attribute, getter method of
property: id
org.hibernate.PropertyAccessException: IllegalArgumentException occurred calling getter of
com.mycompany.Attribute.id
at
org.hibernate.property.BasicPropertyAccessor$BasicGetter.get(BasicPropertyAccessor.java:171)
at
org.hibernate.tuple.entity.AbstractEntityTuplizer.getIdentifier(AbstractEntityTuplizer.java:183)
at
org.hibernate.persister.entity.AbstractEntityPersister.getIdentifier(AbstractEntityPersister.java:3591)
at
org.hibernate.persister.entity.AbstractEntityPersister.isTransient(AbstractEntityPersister.java:3307)
at org.hibernate.engine.ForeignKeys.isTransient(ForeignKeys.java:181)
at org.hibernate.engine.ForeignKeys$Nullifier.isNullifiable(ForeignKeys.java:137)
at
org.hibernate.engine.ForeignKeys$Nullifier.nullifyTransientReferences(ForeignKeys.java:69)
at
org.hibernate.engine.ForeignKeys$Nullifier.nullifyTransientReferences(ForeignKeys.java:47)
at
org.hibernate.event.def.DefaultDeleteEventListener.deleteEntity(DefaultDeleteEventListener.java:248)
at
org.hibernate.event.def.DefaultDeleteEventListener.onDelete(DefaultDeleteEventListener.java:141)
at org.hibernate.impl.SessionImpl.fireDelete(SessionImpl.java:775)
at org.hibernate.impl.SessionImpl.delete(SessionImpl.java:758)
at org.hibernate.engine.CascadingAction$2.cascade(CascadingAction.java:121)
at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:268)
at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:216)
at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:169)
at org.hibernate.engine.Cascade.cascadeCollectionElements(Cascade.java:296)
at org.hibernate.engine.Cascade.cascadeCollection(Cascade.java:242)
at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:219)
at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:169)
at org.hibernate.engine.Cascade.cascade(Cascade.java:130)
at
org.hibernate.event.def.DefaultDeleteEventListener.cascadeBeforeDelete(DefaultDeleteEventListener.java:307)
at
org.hibernate.event.def.DefaultDeleteEventListener.deleteEntity(DefaultDeleteEventListener.java:246)
at
org.hibernate.event.def.DefaultDeleteEventListener.onDelete(DefaultDeleteEventListener.java:141)
at
org.hibernate.event.def.DefaultDeleteEventListener.onDelete(DefaultDeleteEventListener.java:52)
at org.hibernate.impl.SessionImpl.fireDelete(SessionImpl.java:766)
at org.hibernate.impl.SessionImpl.delete(SessionImpl.java:744)
I've tried many versions of hibernate using test from attachment
( mvn -Dhibernate.version=<version> clean compile test ) and I think that
bug was introduced between 3.2.0.ga and 3.2.1.ga
--
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