Seita's programmer notes...
2013年11月16日土曜日
HibernateのsaveOrUpdateについて
テーブルにレコードを追加、もしくは既にあるレコードを更新する場合にSessionのsaveOrUpdateを使っているのだが、INSERTかUPDATEかの挙動はプライマリーキーがテーブルに存在しているかどうかで決定されるようだ。nullであればもちろん追加される。
しかしながら、updateやsaveOrUpdateやmergeなどがあって、まだまだ違いが不明。ここは要する調査。
saveOrUpdate()
does the following:
if the object is already persistent in this session, do nothing
if another object associated with the session has the same identifier, throw an exception
if the object has no identifier property,
save()
it
if the object's identifier has the value assigned to a newly instantiated object,
save()
it
if the object is versioned by a
<version>
or
<timestamp>
, and the version property value is the same value assigned to a newly instantiated object,
save()
it
otherwise
update()
the object
http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html/objectstate.html#objectstate-makingpersistent
0 件のコメント:
コメントを投稿
次の投稿
前の投稿
ホーム
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿