这是我抽象的父亲:
@MappedSuperclass
public class AbstractEntity{
@ManyToMany
protected Set<UserGroupAccess> userGroupAccesses = new HashSet<>();
@ManyToMany
protected Set<UserAccess> userAccesses = new HashSet<>();
}
Run Code Online (Sandbox Code Playgroud)
这是继承上面AbstractEntity的两个实体:
@Entity
public class Project extends AbstractEntity{
// some other properties
}
@Entity
public class TodoTask extends AbstractEntity{
// some other properties
}
Run Code Online (Sandbox Code Playgroud)
我希望在每个子类实体中重写并拥有由userGroupAccesses和userAccesses表示的关系表,我的意思是,例如对于项目实体,我需要它拥有自己的表projectuserGroupAccesses和一个表示AbstractEntity超类中定义的关系的表projectuserAccesses。
以前我能够使用实体的 XML 表示来解决此类问题,我只需在每个实体 XML 中定义以下内容:
<set name="userGroupAccesses" table="projectusergroupaccesses" cascade="all-delete-orphan">
<cache usage="read-write" />
<key column="projectid" />
<many-to-many class="org.hisp.dhis.user.UserGroupAccess" column="usergroupaccessid" unique="true" />
</set>
<set name="userAccesses" …Run Code Online (Sandbox Code Playgroud)