Java Spring引导多对多重复记录
我正在尝试使用SpringBoot创建用户管理API。(代码优先) 我在添加新用户时遇到问题。Java Spring引导多对多重复记录,java,spring,hibernate,jpa,spring-data-jpa,Java,Spring,Hibernate,Jpa,Spring Data Jpa,我正在尝试使用SpringBoot创建用户管理API。(代码优先) 我在添加新用户时遇到问题。 例如,如果我在角色表中添加root\u 1-admin和root\u 2-admin,我有两条记录 角色表: [id] [name] 1 admin 2 admin 型号: 用户 @Data @Entity public class AppUser { @Id @GeneratedValue(strategy = GenerationType.AUTO)
例如,如果我在角色表中添加root\u 1-admin和root\u 2-admin,我有两条记录 角色表:
[id] [name]
1 admin
2 admin
型号:
用户
@Data
@Entity
public class AppUser {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String username;
private String password;
private String firstName;
private String lastName;
//@ManyToMany(fetch = FetchType.EAGER,cascade = CascadeType.ALL)
@ManyToMany(fetch = FetchType.LAZY, cascade = {CascadeType.PERSIST, CascadeType.MERGE})
@JoinTable(name = "user_role", joinColumns = @JoinColumn(name = "user_id"), inverseJoinColumns = @JoinColumn(name = "role_id"))
private Set<Role> roles;
public AppUser() {
}
public AppUser(String username, String password, String firstName, String lastName, Set<Role> roles) {
this.username = username;
this.password = password;
this.firstName = firstName;
this.lastName = lastName;
this.roles = roles;
}
}
服务用户服务impl:
@Override
public void addUser(AppUser user) {
user.setPassword(encoder.encode(user.getPassword()));
userRepository.save(user); // JpaRepository
}
@Override
public void addUser(AppUser user) {
user.setPassword(encoder.encode(user.getPassword()));
userRepository.save(user); // JpaRepository
}