【发布时间】:2021-11-16 06:15:21
【问题描述】:
User 和 UserRole 之间存在一对多关系。
public class User {
@Id
@GeneratedValue
private long id;
@Column(unique = true)
private String username;
private String password;
@OneToMany(fetch=FetchType.EAGER)
@JoinTable(
name = "user_roles",
joinColumns = {@JoinColumn(name="userId")},
inverseJoinColumns = {@JoinColumn(name="roleId")}
)
private Collection<UserRole> roles;
}
和
public class UserRole {
@Id
@GeneratedValue
private long id;
@Column(unique = true)
private String roleName;
}
一开始我可以保存一个用户。但是当我尝试保存另一个用户时,它会拒绝,但连接表上的重复条目除外
【问题讨论】:
-
您是否尝试使用与现有角色具有相同
roleName的角色来保存新用户? -
奇怪的是在我的连接表上,
user_roles,role_id是一个主键。我怎样才能删除它 -
我希望
user_id和role_id的组合都是主键,但实际上不是
标签: spring spring-boot hibernate spring-data-jpa hibernate-mapping