在 Play Framework 中更新用户

Update user in Play Framework

我正在尝试使用以下代码更新我的 MySQL 数据库中的用户对象:

 public static Result updateUser(){
    User current_user = User.find.byId(request().username());
    String id = current_user.email;
    Form<User> filledForm = Form.form(User.class).bindFromRequest();
    filledForm.get().update(id);
    return redirect(routes.DashboardController.dashboard());
}

用户模型:

@Entity
public class User extends Model {

    @Id
    public String email;
    public String password;
    public String name;
    public Date dob;
    public int weight;
    public int height;
    public String gender;

...etc

然后我得到这个错误:[RuntimeException: DataSource user is null?]

经过一些测试后,我已经能够通过添加一个 Long id 作为 @Id 而不是使用 String 电子邮件作为 @Id 来使其工作,但这使得从会话中获取登录用户变得很麻烦。

所以我想知道的是:当 id 是字符串时,有没有办法用新字段更新用户?

我不能评论你的问题,所以我必须把它写在一个答案中。这个问题很好奇。我有一个类似的星座并使用一个 String 作为 id,它更新没有问题。 Is there a way I can update an user with new fields when it's id is a String? 如果我理解正确,您想在更新数据库时向数据库中的 "user" table 添加新字段,还是要为该用户更新新字段? 例外情况:您确定用户在数据库中吗? P.S。 Maybe you can try this ;)