我想要一个'RolesPlayed'实体,其中包含以下列
上面的所有三列构成了一个复合主键。我想知道是否可以将列定义为部门/项目/组之一?如果有,怎么样?或者我是否需要将实体分解为DepartmentRoles,GroupRoles和ProjectRoles。
感谢。
答案 0 :(得分:0)
您可以将多态性与抽象基类一起使用。
@Entity
public class RolePlayed {
@ManyToOne
private User user;
@ManyToOne
private Role role;
@ManyToOne
private Body body;
...
}
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
public abstract class Body {
...
}
@Entity
public class Department extends Body {
...
}
@Entity
public class Project extends Body {
...
}
@Entity
public class Group extends Body {
...
}
查看Polymorphism section in the Java Enterprise tutorial以获得更好的概述。
或者,您也可以使用RolePlayed
,DepartmentRole
和GroupRole
实现制作ProjectRole
实体摘要。