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

Carl Gilbert (JIRA) noreply at atlassian.com
Wed Jul 4 14:00:52 EDT 2007


    [ http://opensource.atlassian.com/projects/hibernate/browse/HHH-2690?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_27408 ] 

Carl Gilbert commented on HHH-2690:
-----------------------------------

The varHolderMap in the DBVariant class is the one that causes the problem.  When I try to delete a VarCollHolder from it it excepts.

> 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.1, 3.2.2, 3.2.3, 3.2.4, 3.2.4.sp1
>         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