[hibernate-issues] [Hibernate-JIRA] Created: (HHH-2690) Cascade delete and ternary association after upgrade

Przemek Dyk (JIRA) noreply at atlassian.com
Wed Jun 27 15:13:52 EDT 2007


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.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the hibernate-issues mailing list