我正在使用Spring Security,为此,我有一个User和Role类。 用户的角色存储在联接表User_Role中。 我已经设法让Hibernate自动构建对我来说很好的东西,但是主键不是复合键(我只能一次添加用户或角色)。
“用户”类:
@Entity(name = "user")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
@Column(unique = true)
private String username;
private String password;
@Column(unique = true)
private String email;
private boolean enabled;
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, targetEntity = Role.class)
@JoinTable(name = "USER_ROLE", joinColumns = { @JoinColumn(name = "USER_ID") }, inverseJoinColumns = {
@JoinColumn(name = "ROLE_ID") })
private Set<Role> roles;
// Getters and Setters
“角色”类:
@Entity(name = "role")
public class Role {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;
@Column(unique=true)
private String name;
// Getters and Setters
我遇到的错误是:
如何在不对结构进行过多修改的情况下为我的用户添加多个角色?
答案 0 :(得分:1)
我认为您正在寻找的是ManyToMany关系,而不是OneToMany。
一个用户可以有多个角色,但是表中的每个角色都可以应用于多个用户。