java - 作为参数的角色列表
问题描述
我想将角色分配给一个新用户,该角色在数据库中称为 ROLE_USER,ID 为 3。但我不知道如何在方法 save() 中传递该值。在底部,我抛出了最重要的类和保存方法。
用户模型类
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(nullable = false)
private String firstName;
@Column(nullable = false)
private String lastName;
@Column(nullable = false, unique = true)
private String email;
@Column(nullable = false)
private String password;
@ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinTable(
name = "user_role",
joinColumns = {@JoinColumn(name = "USER_ID", referencedColumnName = "ID")},
inverseJoinColumns = {@JoinColumn(name = "ROLE_ID", referencedColumnName = "ID")})
private List<Role> roles;
public User(String firstName, String lastName, String email, String password, List<Role> roles) {
this.firstName = firstName;
this.lastName = lastName;
this.email = email;
this.password = password;
this.roles = roles;
}
Getters and setters ...
榜样班
@Entity
@Data
@Table(name = "roles")
public class Role {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(unique = true)
@NotNull
private String name;
@ManyToMany(mappedBy="roles")
private List<Role> users;
}
UserRegistrationDto 类
public class UserRegistrationDto {
private String firstName;
private String lastName;
private String email;
private String password;
private List<Role> roles;
}
UserService 类中的保存方法
public User save(UserRegistrationDto registrationDto) {
User user = new User(registrationDto.getFirstName(),
registrationDto.getLastName(),
registrationDto.getEmail(),
passwordEncoder.encode(registrationDto.getPassword()),
ROLE ???);
return userRepository.save(user);
}
解决方案
推荐阅读
- flutter - Flutter 网格视图动画
- sql-server - 使用 invoke-sqlcmd 和 powershell 捕获权限错误
- python - Scikitlearn PCA 计算不正确的最后一行 y 值
- ios - 如何在 swift iOS 中使用非 UI react-native 模块
- android - 即使添加了 notifydata,问题仍然存在
- javascript - 如何从我的 html 文件访问我的 JavaScript 类?
- java - 消息参数没有改变循环执行的次数
- c# - 进程终止时如何获得进程运行时
- javascript - javascript onblur() 重置
- python - 平均一个数据框并添加一个新列 python pandas