[hibernate-issues] [Hibernate-JIRA] Commented: (HHH-6805) CascadeType.ALL should behave the same as listing all the types individually

Jason Pyeron (JIRA) noreply at atlassian.com
Fri Nov 4 18:03:19 EDT 2011


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

Jason Pyeron commented on HHH-6805:
-----------------------------------

http://jira.corp.millennialmedia.com/browse/SELFSERVE-442

> CascadeType.ALL should behave the same as listing all the types individually
> ----------------------------------------------------------------------------
>
>                 Key: HHH-6805
>                 URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-6805
>             Project: Hibernate Core
>          Issue Type: Bug
>          Components: annotations, core
>    Affects Versions: 3.6.3
>         Environment: h2
>            Reporter: Jason Pyeron
>
> {code}
>     @ManyToOne(fetch = FetchType.LAZY, cascade={CascadeType.PERSIST, CascadeType.REFRESH, CascadeType.MERGE, CascadeType.REMOVE, CascadeType.DETACH})
>     @JoinColumn(name = "memberid", nullable = false)
>     private MemberModel member;
> {code}
> or
> {code}
>     @ManyToOne(fetch = FetchType.LAZY, cascade={CascadeType.PERSIST, CascadeType.REFRESH, CascadeType.MERGE, CascadeType.REMOVE})
>     @JoinColumn(name = "memberid", nullable = false)
>     private MemberModel member;
> {code}
> results in a 
> {code}
> org.hibernate.PropertyValueException: not-null property references a null or transient value: com.millennialmedia.enterprisews.operational.model.AgencyModel.member
>         at org.hibernate.engine.Nullability.checkNullability(Nullability.java:100)
>         at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:312)
>         at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:203)
>         at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:129)
>         at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210)
>         at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195)
>         at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:117)
>         at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)
>         at org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java:685)
>         at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:677)
>         at org.hibernate.engine.CascadingAction$5.cascade(CascadingAction.java:252)
>         at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:392)
>         at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:335)
>         at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:204)
>         at org.hibernate.engine.Cascade.cascade(Cascade.java:161)
>         at org.hibernate.event.def.AbstractSaveEventListener.cascadeBeforeSave(AbstractSaveEventListener.java:450)
>         at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:282)
>         at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:203)
>         at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:129)
>         at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210)
>         at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195)
>         at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:117)
>         at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)
>         at org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java:685)
>         at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:677)
>         at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:673)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:597)
>         at org.hibernate.context.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:345)
>         at $Proxy66.saveOrUpdate(Unknown Source)
> {code}
> if 
> {code}
>     @ManyToOne(fetch = FetchType.LAZY, cascade={CascadeType.ALL})
>     @JoinColumn(name = "memberid", nullable = false)
>     private MemberModel member;
> {code}
> it works fine.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the hibernate-issues mailing list