0

名前を更新したい場合は、 User クラスがあるとします。

ユーザー user = User.findById(123); user.name = "誰か"; user.save();

生成される SQL は次のようになります。

update user as user0 set user0.name = ? user0.email = ? .....

つまりPlay、単一のフィールドを更新したいだけだとは認識していませんでした。生成された SQL で指定されたフィールドのみを更新する方法はありますか?

4

3 に答える 3

0

これは、Play (または実際には Avaje Ebean) がどのフィールドが変更されたかを実際に追跡するかどうかに依存します。代わりに、すべてのフィールドを更新する方が簡単です。

これはパフォーマンス的にも問題ではないので、解決策を探すのにあまり時間を無駄にしません。

于 2013-07-03T05:39:30.807 に答える
0

hibernate の動的更新機能を使用できます: http://www.mkyong.com/hibernate/hibernate-dynamic-update-attribute-example/

ただし、データベースはステートメントをキャッシュできないため、これはパフォーマンスに悪影響を与えることに注意してください。その他の説明については、こちらを参照してください: Hibernate: dynamic-update dynamic-insert - パフォーマンス効果

于 2013-07-04T07:33:47.707 に答える