2

14列のテーブルがあります。これで、更新する値が5つしかないテーブルに対応するオブジェクトができました。
saveOrUpdateメソッドを使用して、行を保存/更新しています。問題は、このメソッドを使用してこれらの5つの列を更新すると、他の9つの列の値がすべてnullに設定されることです。
1つの解決策は、同じことを行うためにupdate sqlクエリを作成することですが、SQLクエリではなくHibernateAPIを使用したいと思います。
それを達成する方法はありますか?

4

4 に答える 4

9
Foo objectToUpdate = (Foo) session.get(Foo.class, idOfObjectToUpdate);
objectToUpdate.setField1(newValue1);
objectToUpdate.setField2(newValue2);

saveOrUpdate()orを呼び出す必要はありませんmerge()。オブジェクトがアタッチされているため、トランザクションの最後にすべてがフラッシュされ、コミットされます。

于 2012-08-05T08:52:00.220 に答える