假设一个名为 的模型User
:
@Entity
public class User extends Model {
@Id
@Constraints.Min(10)
public Long id;
@Constraints.Required
public String username;
@Constraints.Required
public String password;
public static Finder<Long, User> find = new Finder<Long, User>(
Long.class, User.class
);
}
当我尝试更新User
控制器中的实例时:
User user = User.find.where().eq("username", username).findUnique();
if(user != null) {
user.username = "some_new_username";
user.save();
}
似乎没有提交任何更改。我在某处读到,当您通过其属性更改模型实例时,它不会变脏,因此不会发生任何更改。因此,您应该改用 setter。在 Play Framework 的文档中,据说这些设置器(和获取器)是自动生成的,但是使用user.setUsername(username)
给了我一个编译错误:
cannot find symbol [symbol: method setUsername(java.lang.String)] [location: class models.User]
我错过了什么吗?