2011-12-21 9 views
0

私はこのシナリオの最良のアプローチは何ですか? テーブルがあり、テーブルの行を更新したいと思います。テーブルの行の1つに関連する新しい一時オブジェクトが与えられましたが、情報の一部が異なります(これは更新する必要がある情報です)。 DBからオブジェクトを取得して、1つの永続オブジェクトと1つの一時オブジェクトがDBオブジェクトを更新する必要があります。Hibernateは一時オブジェクトを持つエンティティを更新します

私はHibernateとMySqlを使用しています。

何が最善の方法ですか。

EDIT:オブジェクトは他のテーブルへの外部キーと非常に複雑です。

ありがとう、 Ronen。

答えて

0

一時オブジェクトを永続化する必要があります。作成response.but文句を言わないため

. 
. 
. 
fritz.setColor(persistentObject.getColor()); 
fritz.setId(persistentObject.getId()); 
. 
. 
. 
+0

感謝を次のように

DomesticCat fritz = new DomesticCat(); fritz.setColor(Color.GINGER); fritz.setSex('M'); fritz.setName("Fritz"); sess.update(fritz);

を次のようにセッションと関連付けることによって、あなたは一時オブジェクトの値を設定するに永続オブジェクトを使用することができないということ同じデータを持つ新しいエントリ。私は既存の行を更新し、重複行を作成しません。また、エンティティ(私の国内の猫)は他のテーブルへの外部キーと非常に複雑です – rperez

+0

@rperez:新しいオブジェクトが既存のデータベース行と同じIDを持つ場合は、その行を更新します。 –

+0

Tom、新しいオブジェクトには一時的であるためIDはなく、ID生成ポリシーでは保存時にIDが設定されます。永続オブジェクトにすでに関連付けられている行として手動で設定および更新することはできません。私は何が欠けていますか? – rperez

関連する問題