如何在Play框架中更新模型的某个字段?

时间:2013-07-03 03:52:36

标签: java playframework playframework-1.x

假设我们有一个User类,如果我想更新它的名字:

User user = User.findById(123);    user.name =“某人”;    user.save();

生成的SQL将是

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

这意味着Play没有意识到我只想更新单个字段。有没有办法可以使生成的SQL只更新指定的字段?

3 个答案:

答案 0 :(得分:1)

信息:这是Play 2 + Ebean的答案!所以它不适用于Play 1 + JPA

Ebean's API中有一些选项,因此您应该检查并选择一个:

答案 1 :(得分:0)

这取决于Play(或实际上是Avaje Ebean)是否实际跟踪哪些字段已更改。更新所有字段更简单。

这也不是性能方面的问题,因此我不会浪费太多时间寻找解决方案。

答案 2 :(得分:0)

您可以使用hibernate的动态更新功能:http://www.mkyong.com/hibernate/hibernate-dynamic-update-attribute-example/

但请记住,这会对性能产生负面影响,因为数据库无法缓存语句。有关其他说明,请参阅此处:Hibernate : dynamic-update dynamic-insert - Performance Effects