在 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 ;)
我正在尝试使用以下代码更新我的 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 ;)