2011-06-22 148 views
2

我有標籤對象,這讓我瘋狂。我試圖更新它,每次我做一切似乎確定,直到我檢查數據庫,它沒有更新。休眠不更新(合併)對象

我打開了所有日誌記錄,但我沒有看到任何不尋常的東西。

即使在我創建全新的對象並嘗試更新(或合併它)之後,它將不會顯示在數據庫中。它將創建新的對象,但不會更新它。

有沒有人有類似的問題,你是如何解決它?

<hibernate-mapping package="com.package"> 

<class name="com.package.Tag" table="tags" lazy="false" mutable="false" > 
    <meta attribute="generated-class">com.package.generated.AbstractTag</meta> 
    <meta attribute="scope-class">public abstract</meta> 
    <cache usage="read-write"/> 

    <id name="id" type="long" column="tag_id"> 
     <generator class="native"/> 
    </id> 


    <property name="name" type="string" column="name" unique="true"/> 

    <property name="itemCount" type="integer" column="itemCount"/> 

</class> 

</hibernate-mapping> 
+0

如果你發佈一些像hbm文件(如果有的話)和相關的java代碼的代碼會很有幫助。 –

回答

1

當心mutable="false"它由應用程序使對象imutable:

,那麼具體:http://docs.jboss.org/hibernate/core/3.3/reference/en/html/mapping.html

可變(可選 - 默認爲true):表明該類的實例如下(不)可變。不可變的類mutable =「false」不能被應用程序更新或刪除。這允許Hibernate進行一些次要的性能優化。

從hbm文件中刪除mutable="false"修復了這個問題。

+1

我已經準備好將這頭髮撕掉了。我一直在試圖弄清楚爲什麼我的對象的變化在一天內沒有得到更新。我打開自動提交,添加到我的saveOrUpdate方法等,等等沒有幫助。非常感謝您發佈此信息。 – barclay

0

您是否試過在項目上設置(並保存)標籤,而不是將項目添加到標籤類?

因此,基本上做了什麼是數據庫所需的,首先創建一個標籤(沒有任何項目的引用),然後創建項目(記錄)與標籤的引用。