2012-01-11 12 views
1

Spring3でHibernateTemplateクラスについて読んでいます。Spring hibernateテンプレートクラス

ここで私は二つの方法の更新とするsaveOrUpdateを見て、私は現在のHibernateのSessionに関連付け、そのよう

  • 更新

アップデートとしてドキュメントから与えられた永続的なインスタンスを、それを読んで。

ここで「現在のHibernateセッションに関連付ける」という意味は何ですか?

  • するsaveOrUpdate

保存または所与の永続インスタンスを更新し、そのIDに基づいて(設定 "保存されていない値" に一致します?)。インスタンスを現在のHibernateセッションに関連付けます。

ここでは、 "そのidに従った意味(設定された"保存されていない値 "と一致していますか?)を示します。インスタンスを現在のHibernateセッションに関連付けますか?

私に事前

答えて

1

シンプルで

感謝を助けてください - 同じIDを持つオブジェクトがDBに存在する場合、それはID(主キー)がnullの場合、それはとして保存し、他のそれを更新新しい値 - したがってsaveOrUpdate - は、DBに存在する値であるか新しい値であるかによって異なります。

IDの一致は、タグの下のhbm内のpojo IDと指定した列を一致させることによって行われます。

するsaveOrUpdate()は以下のん:here

から

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 

は、この情報がお役に立てば幸いです。

1

「現在のHibernateセッションに関連付ける」という意味は何ですか?

このSessionでそのエンティティを取得すると、更新されたエンティティが表示されます。その他Sessionは、Sessionがフラッシュされるまでアップデートを表示しません。

ここでの意味は何である「( 『保存されていない値のIDに基づいて構成を一致は』?)。

エンティティがIDを持っている場合は、(既存のエンティティとしてsaveOrUpdateによって扱われます"unsaved-value"は、Hibernateが新しいエンティティのsaveOrUpdateでIDに入れる値です。これは、例えば負の値に設定することができます。 Sessionからのこのエンティティの検索に続いて、それがまだDBに保存されていない新しいエンティティであるか、既存のエンティティであるかを判断することができます。

1

ここで「現在のHibernate セッションに関連付ける」という意味は何ですか?

その後、以降のセッションは、そのエンティティのために行われた変更を追跡し、必要数のDML文を削減するからので、(一時的またはデタッチ)あなたのエンティティは、セッション(持続/添付)で保存され、関連付けを取得することを意味し最後に実行されます。 「(未保存の値のIDに従って構成 に一致 『の意味は』?)。現在のHibernate セッションにインスタンスを関連付け」であるものをここ

エンティティID属性に値が設定されていて、それが更新されセッションに変更を追跡するためにセッションに接続すると、そのエンティティが新しいレコードとしてDBに挿入され、セッションに関連付けられます。

休止体のエンティティinstance statesを通過してください

関連する問題