2011-06-22 6 views
2

私は狂ったように動かすタグオブジェクトを持っています。私はそれを更新しようとしているし、私はデータベースをチェックし、それが更新されない限り、私はすべてのことをOKのように思えるたびに行う。Hibernateがオブジェクトを更新(マージ)しない

私はすべてのロギングをオンにしていますが、普通のことは何も表示されません。

新しいオブジェクトを作成してすぐに更新(またはマージ)しようとしても、データベースには表示されません。新しいオブジェクトが作成されますが、オブジェクトは更新されません。

誰も同じような問題を抱えていましたが、どのように解決しましたか?

<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

それは、アプリケーションによってオブジェクトimutableを作るmutable="false"に気をつけろ:ここで指定したよう

http://docs.jboss.org/hibernate/core/3.3/reference/en/html/mapping.html可変

(オプション - デフォルトはtrue):クラスのインスタンスが(ではないことを指定します)mutable。不変クラスmutable = "false"は、アプリケーションによって更新または削除できません。これにより、Hibernateはマイナーなパフォーマンスの最適化を行うことができます。

hbmファイルからmutable="false"を削除すると問題が解決しました。

+1

私はまさにこれで髪を裂く準備ができました。私はなぜ私のオブジェクトの変更が1日以上更新されていないのか理解しようとしていました。私は自動コミットを有効にし、saveOrUpdateメソッドなどにフラッシュを追加しました。何も助けられませんでした。これを投稿していただきありがとうございます。 – barclay

0

タグクラスにアイテムを追加する代わりに、アイテムにタグを設定(保存)しようとしましたか?

基本的には、データベースに必要なものを実行し、最初にタグ(アイテムへの参照なし)を作成してから、タグへの参照を含むアイテム(レコード)を作成します。

関連する問題