User Entity
@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;
}
Как я могу заставить работать этот метод контроллера редактирования? Можно ли вообще изменить идентификатор сущности? У меня есть форма 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)
, но всякий раз, когда я редактировал электронную почту, это создает нового пользователя, и всякий раз, когда я менял пароль, я не мог больше входить в систему с любым паролем.