У меня есть простое приложение в Spring, и я хочу реализовать метод, который устанавливает роль при создании нового пользователя. Так что это мой код. Как я должен назначить роли для последнего метода?
Role.java
@Entity
@Table(name = "roles")
public class Role {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Enumerated(EnumType.STRING)
@NaturalId
private RoleName name;
public Role(){}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public RoleName getName() {
return name;
}
public void setName(RoleName name) {
this.name = name;
}
}
перечисление RoleName
public enum RoleName {
ROLE_USER,
ROLE_ADMIN
}
Метод установки в User.java
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(name = "user_roles",
joinColumns = @JoinColumn(name = "user_id"),
inverseJoinColumns = @JoinColumn(name = "role_id"))
private Set<Role> roles = new HashSet<>();
А как мне заполнить этот метод?
public User addUser(User user) {
Role userRole = roleRepository.findRoleByName(RoleName.ROLE_USER);
User newUser = new User();
newUser.setEmail(user.getEmail());
newUser.setPassword(bCryptPasswordEncoder.encode(user.getPassword()));
newUser.setUsername(user.getUsername());
newUser.setFirstName(user.getFirstName());
newUser.setLastName(user.getLastName());
newUser.setRoles();
return userRepository.save(newUser);
}
Я не знаю, что мне положить newUser.setRoles()