gpt4 book ai didi

playframework-2.0 - 如何仅更新/保存更改的字段

转载 作者:行者123 更新时间:2023-12-04 23:26:45 25 4
gpt4 key购买 nike

如何使用 Play 仅将一组特定字段更新到数据库?目前我有一个 User包含特定字段的模型,我们称之为:isAdministrator :

private boolean isAdministrator;

我有访问器方法:
/**
* @return the isAdministrator
*/
public boolean isAdministrator() {
return isAdministrator;
}

/**
* @param isAdministrator
* the isAdministrator to set
*/
public void setAdministrator(boolean isAdministrator) {
this.isAdministrator = isAdministrator;
}

但是当我更改用户名时,通过表单中的 isAdministrator不包括在内, Play 重置我的用户对象并设置值 0对于这个用户?

那么,如何仅更新已更改的字段?

最佳答案

我不会直接回答你的问题,但不是让一个 bool 值指示你的用户是不是管理员,我会创建一个 Admin从 User 继承的类。

public class Admin extends User {
....
}

它是 S 的“ SOLID” ;-)

编辑:

在 Controller 中,您可以在使用表单值更新之前从数据库加载旧值:
...
User userFromDB = User.findById(anId);
User userFromForm = userForm.get();

// set previous value
userFromForm.setArchived(userFromDB.getArchived());

User.update(userFromForm);
...

关于playframework-2.0 - 如何仅更新/保存更改的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11690638/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com