如何使用3个实体之间的关系的连接表

时间:2017-09-09 17:12:31

标签: java spring hibernate jpa mapping

我有一个场景,一个员工可以属于多个组织,每个组织他可以有不同的角色。我怎样才能在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;
            }
}

任何人都可以帮助我将角色映射到员工。如此多的员工可以属于许多组织,每个组织都可以拥有不同的角色。

任何帮助都将受到高度赞赏!

0 个答案:

没有答案