泛型和Spring Data JPARepository

时间:2014-01-24 20:21:13

标签: spring spring-data

这是一个基于Oliver Gierke suggestion的后续问题。

我们有两个表(几乎相同的信息)但由于某些外部原因,不能使用常见的单个表。我收到一个错误,基类不是映射实体。 Oliver Gierke在回答中提到它只适用于 单表 。我假设这就是原因。如果是这样,有人可以解释为什么会出现这种限制,以及如何进行以下工作。

基础实体:

   @MappedSuperclass
   public abstract class DecisionEntity {

继承类:

   @Entity
   @Table(name="DM_INSP_TASKING_RULES_RSLT")
   public class DmInspTaskingRulesRslt extends DecisionEntity implements Serializable {

   @Entity
   @Table(name="DM_UW_REF_RULES_RSLT")
   public class DmUwRefRulesRslt extends DecisionEntity implements Serializable {

存储库

   @Repository
   public interface DecisionManagementRepository<T extends DecisionEntity> extends    JpaRepository<DecisionEntity, Long> { 

定义了'packagesToScan'并列出了persistence.xml中的所有3个类。 我正在为'DecisionEntity'课程获得'非管理实体'。 我尝试了继承类型 - 'TABLE_PER_CLASS

1 个答案:

答案 0 :(得分:1)

Spring Data JPA和Java Persistance API规范不支持此功能。

  • Spring Data JPA问题DATAJPA-264

    存储库:如果实体不是@Entity(例如@MappedSuperclass),则在启动时抛出异常

    Status: Investigating
    Resolution: Unresolved
    
  • JPA specifications说:

      

    映射的超类,与实体不同,不可查询,不得作为参数传递给   EntityManagerQuery次操作。由映射的超类定义的持久关系必须   是单向的。