作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在构建一个 Spring Boot 应用程序,它在用户和角色实体之间具有一对多的关系。
用户:
@Entity //Marks class as an entity for JPA
@Table(name="users") //Gives the table a name
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class User {
@Id //Marks variable as id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
private String name;
private String phoneNumber;
private String address;
private String email;
private String password;
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinTable(name="user_role", joinColumns = @JoinColumn(name = "user_id"),inverseJoinColumns = @JoinColumn(name = "role_id"))
private Collection<Role> roles;
角色:
@Entity
@Getter
@Setter
@NoArgsConstructor
@Table(name="roles") //Gives the table a nam
public class Role {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
int id;
String role;
我试图做到这一点,以便当用户使用 CrudRepository 的存储库保存功能保存到数据库中时...
void addUser(User user) {
userRepository.save(user); //adds new user to db.
}
...在发送以下 Json 对象时,用户将被添加到数据库中,并且给定的角色类型也会附加到对象:
{
"name": "John Hancock",
"phoneNumber": "555-5555-555",
"address": "address...",
"email": "John@gmail.com",
"password": "adhajisdhakjsd",
"roles":[{
"role": "Admin"
}]
}
以下代码通过将 USER 添加到带有附加 ROLE 的数据库中来工作,但是添加具有相同角色的其他用户,会在数据库内添加一个新的相同 ROLE 行。
问题:有没有办法让新添加的用户只使用已有的 ROLE 而不添加新行?
最佳答案
您可以将“角色”设为主键。但最好不要在这个级别上这样做。
您可以在映射阶段映射角色。
关于java - Spring Boot 仅在唯一时才将角色添加到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60552481/
我是一名优秀的程序员,十分优秀!