Hibernateの更新テーブルをsession.updateどのようにオブジェクト(データベースから行)をロードし、それを保存することができフィールド値を変更することなく戻ることができます。session.saveせずに同じ値を持つHibernateの更新テーブルまたは同じ値を持つ
ロードした値と同じ値の行に対してUPDATEクエリを発行するには、hibernateが必要です。 私たちは、HibernateとUPDATEを行っている間にデータを変更するJDBCの間にミドルウェアを持っています。
私たちはsession.replicateを試しましたが、そのオブジェクトのすべてのコレクションを削除しています。我々はすべて私たちの関係を失うていることを意味 すなわち
class User{
Set<Order> orders; //inversely mapped
}
class Order{
User user;
}
while doing session.replicate(user) it is issueing a following SQL
update ORDER set user=null where id=?
。
session.saveまたはsession.updateは、休止状態に移行する前に値を変更していないため、動作しません。
hibernateに、すべてのフィールドが変更されたとみなし、データベースを更新する必要があると考える他の方法はありますか?
なぜ更新を発射する:
は、私はあなたのいずれかを見て、拡張することができると思いますか?または、セッションオブジェクトとDBオブジェクトを同期させたいのですか? – ManuPK
私たちは、HibernateとJDBCの間にミドルウェアを持っています。これは、HibernateがUPDATEとSELECTを行っている間にデータを変更(暗号化と復号化)します。既存の暗号化されていないデータには、このソリューションが必要です。最初にロードしてから再び保存するので、保存中に暗号化します。しかし、これはすべて、値が変更されることを知らないので、休止状態に隠されています。 – Rajesh