小编Ham*_*ada的帖子

覆盖子类实体中 @MappedSuperclass 的继承属性(例如继承关系表名称、列名称等)

这是我抽象的父亲:

@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)

我希望在每个子类实体中重写并拥有由userGroupAccessesuserAccesses表示的关系表,我的意思是,例如对于项目实体,我需要它拥有自己的表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)

java spring hibernate hibernate-mapping spring-data-jpa

5
推荐指数
1
解决办法
1284
查看次数