[Seasar-user:11391] [Kuina-Dao] dao.persist(entity) で,主キー重複エラーを回避するには?

Applied_MATSUDA Masaaki [E-MAIL ADDRESS DELETED]
2007年 11月 1日 (木) 18:10:12 JST


TigerCatです.お世話様です.


さて,相変わらず低レベルな質問ですみません・・・
Kuina-Daoで,DBのレコードをupdateする際に,以下のような
例外が出てしまいます.

javax.persistence.PersistenceException: org.hibernate.NonUniqueObjectException:
a different object with the same identifier value was already associated with
the session: [hoge.entity.Fuga#1]

Serviceクラスのコードではこのようなことをやっています.

synchronized public void insertOrUpdate(String code, Integer yyy) {
  Fuga fuga = new Fuga();
  fuga.setCode(code); // 主キーなんですよこれが.
  fuga.setXXX(Boolean.TRUE);
  fuga.setYYY(yyy);
  dao.persist(fuga);
}

codeが主キーなんですけれど,
updateしたくて,レコード上に既にある"1"とかを指定して
実行すると上記のどっかんです.

updateの際にはきっと注意事項があるのだと思うのですが・・・
ネットで調べてみましたが,うまく見当たらずで・・・
Hibernateの記事は多くヒットしましたが.
なにとぞご教示くださいませ.




Seasar-user メーリングリストの案内