1
我有以下型號:JPA多對多插入重複值
@Entity
@Table(name="`tbUser`")
public class User {
@Id
@SequenceGenerator(name="tbuser_id_seq",
sequenceName="tbuser_id_seq",
allocationSize=1)
@Column(name="`userId`")
@GeneratedValue
private Long id;
@Column(name="username")
private String username;
@Column(name="password")
private String password;
@Column(name="nombres")
private String firstName;
@Column(name="apellidos")
private String lastName;
@Column(name="email")
private String email;
@Column(name="`avatarUrl`")
private String avatarUrl;
@ManyToMany(fetch=FetchType.EAGER, cascade=CascadeType.MERGE)
@JoinTable(name="`tbUserRole`",
[email protected](name="`userId`",referencedColumnName="`userId`"),
[email protected](name="`roleId`",referencedColumnName="`roleId`"))
private List<Role> roles = new ArrayList<>();
...
@Entity
@Table(name="`tbRole`")
public class Role {
@Id
@Column(name="`roleId`")
@GeneratedValue
private Long id;
@Column(name="name")
String name;
@ManyToMany(mappedBy="roles")
private List<User> users = new ArrayList<>();
...
被映射到下表:
user.getRoles().add(role) and repository.save(new User())
無論哪種方式,角色再次插入到數據庫中。
如
如果這些都在數據庫中現有的角色:
ID Name
1 ADMIN
2 USER
,我插入與ADMIN角色的用戶,它再次插入:
ID Name
1 ADMIN
2 USER
3 ADMIN
哪有我解決這個問題?
我已經試過這個post的解決方案,但沒有奏效。
你怎麼角色實例? – Cherif