【发布时间】:2020-01-10 15:15:34
【问题描述】:
用户实体
@Entity
public class User {
@Id
@Email
@NotEmpty
@Column(unique = true)
private String email;
@NotEmpty
private String name;
@Size(min=4)
private String password;
@OneToMany(mappedBy = "user",cascade = CascadeType.ALL)
private List<Task> tasks;
@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(name="USER_ROLES",joinColumns = {
@JoinColumn(name="USER_EMAIL",referencedColumnName = "email")
},inverseJoinColumns = {@JoinColumn(name="ROLE_NAME",referencedColumnName = "name")})
private List<Role> roles;
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public List<Task> getTasks() {
return tasks;
}
public void setTasks(List<Task> tasks) {
this.tasks = tasks;
}
public List<Role> getRoles() {
return roles;
}
public void setRoles(List<Role> roles) {
this.roles = roles;
}
我怎样才能使这个编辑控制器方法起作用?甚至可以更改实体的 ID 吗?我有一个 HTML 表单,想通过它更新电子邮件和密码。
@GetMapping(value = "/admin/setDetails")
public String editUser(@RequestParam("email") String email, Model model){
User user = userService.findOne(email);
model.addAttribute("user",user);
return "setdetails";
}
我也尝试使用 userRepository.save(user) 进行操作,但每当我编辑电子邮件时,它都会创建新用户,并且每当我更改密码时,我都无法再使用任何密码登录。
【问题讨论】:
-
更新了代码格式并添加了正确的标签