我在 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; }}角色名稱枚舉 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()
1 回答

慕村9548890
TA貢獻1884條經驗 獲得超4個贊
您可以使用 java 8 的 Stream,如下所示:
Set<Role> roles = Stream.of(userRole)
.collect(Collectors.toCollection(HashSet::new));
newUser.setRoles(roles);
添加回答
舉報
0/150
提交
取消