我有一个场景,一个员工可以属于多个组织,每个组织他可以有不同的角色。我怎样才能在jpa中映射这个?
Staff.java
public class Staff {
@ManyToMany
@JoinTable(name="STAFF_ORGANIZATION",joinColumns=@JoinColumn(name="staff_id"),inverseJoinColumns=@JoinColumn(name="organization_id"))
private Set<Organization> organizations;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
}
Organization.java
public class Organization {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@Column
private String OrganizationName;
@ManyToMany(mappedBy="organizations")
private Set<Staff> staff;
}
StaffRoles.java
public class StaffRoles {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@Column
@Enumerated(EnumType.ORDINAL)
private Roles roles;
public enum Roles {
USER(100), ADMIN(200);
private int values;
Roles(int values) {
this.values = values;
}
public int getValues() {
return values;
}
}
任何人都可以帮助我将角色映射到员工。如此多的员工可以属于许多组织,每个组织都可以拥有不同的角色。
任何帮助都将受到高度赞赏!