I have a scenerio where one staff can belong to multiple organisation and for each organisation he can have different role. How can i map this in 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;
}
}
Can anyone please help me in mapping the roles to the staff. So many staff can belong to many organisation and for each organisation he can have different role.
Any help will be highly appreciated!