2013-01-06 47 views
1

我升級到冬眠3.6.0.FINAL後得到的錯誤,但它與3.3.2.GAhibernate.TransientObjectException:對象引用一個未保存的瞬態的實例保存的瞬態的實例前沖洗,後休眠升級

工作

我的問題類似於https://forum.hibernate.org/viewtopic.php?p=2452617

在這種情況下,他們已經設置cascade =「all」來解決問題。

但在我的情況下,我不想更新引用的實體。我沒有bi直系,關係,它只是一個多對一的。大多數類似的問題貼在這裏,建議做一個級聯,但在我的情況下,它不想級聯。

我映射

<class name="org.hmil.ams.com.model.MyUserDetails" table="CMUPMST_TB"> 
     <id name="username" column="UPMST_USER_NAME" type="java.lang.String" 
      unsaved-value="0"> 
      <generator class="assigned" /> 
     </id> 
     <property name="password" column="UPMST_USER_PWD" type="java.lang.String" 
      not-null="true" /> 
     <property name="UPMST_ROLE_ID" type="long" not-null="true" /> 

     <many-to-one name="UPMST_ROLE" fetch="join" cascade="none" 
      insert="false" update="false"   class="org.hmil.ams.setup.model.CodeMst"> 
      <column name="UPMST_ROLE_ID" /> 
     </many-to-one> 
</class> 

我使用Spring BlazeDS的/柔性,我的對象分離。現在,當我嘗試保存新創建的MyUserDetails實體時,它說有CodeMst的暫時實例,(我沒有更新實體,但可能是BlazeDS,而它反序列化新創建的MyUserDetail,它正在實例化引用的CodeMst實體,空值,這可能會導致問題,但相同的代碼在升級前工作) 任何幫助解決這個問題的讚賞。

回答

1

我居然發現這裏的解決方案: https://hibernate.atlassian.net/browse/HHH-5908

部署補丁。我只是說了TypeHelper.findDirty方法 (線287)

OLD: final boolean[][] includeColumns, 
NEW: final boolean[] includeProperties, final boolean[][] includeColumns, 

然後在AbstractEntityPersister.findDirty(行3408)相同的修訂:

OLD: propertyColumnUpdateable, 
NEW: getPropertyUpdateability(), propertyColumnUpdateable, 

更新: 的休眠修復打破這是https://hibernate.atlassian.net/browse/HHH-2350

相關問題