【发布时间】:2017-08-05 05:15:57
【问题描述】:
我在我的网络应用程序中使用休眠 4。我有人员、部门和角色。顾名思义,一个人可以拥有多个角色,以及多个部门。但是每个角色都特定于特定部门。我设计如下。
Person.java
@Entity
@Data
public class Person implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column
private int id;
@Column
private String name;
@JoinTable(name = "person_department_role",
joinColumns = @JoinColumn(name = "person_id"),
inverseJoinColumns = @JoinColumn(name = "role_id"))
@MapKeyJoinColumn(name = "department_id")
@ElementCollection
private Map<Department, Role> roleByDepartment = new HashMap<>();
}
Department.java
@Entity
@Data
public class Department implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column
private int id;
@Column
private String name;
}
Role.java
@Entity
@Data
public class Role implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column
private int id;
@Column
private String name;
}
根据上述设置,我不能为任何人添加多个部门。需要对这段代码进行哪些更改,以便一个人可以拥有多个角色以及多个部门?任何建议。
【问题讨论】:
-
嗨 Rajesh,你能解决它吗?以下答案是否有帮助,或者您是否能够自己找到解决方案。如果您找到了解决方案,您可以在这里分享它作为答案吗?
标签: java hibernate hibernate-mapping hibernate-annotations