という名前のモデルを仮定します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();
}
変更はコミットされていないようです。モデルインスタンスをそのプロパティで変更すると、ダーティにならないため、変更が行われないことをどこかで読みました。したがって、代わりにセッターを使用する必要があります。Play Framework のドキュメントでは、これらのセッター (およびゲッター) は自動的に生成されると言われていますが、使用user.setUsername(username)
するとコンパイル エラーが発生します。
cannot find symbol [symbol: method setUsername(java.lang.String)] [location: class models.User]
何か不足していますか?