猿问

Spring Jpa继承类型加入select only baseclass

我在 select only base class 时遇到了问题,无法找到解决方案。我也总是得到子类,而不仅仅是基类。


考虑我有基类


@Entity

@Inheritance(strategy = InheritanceType.JOINED)   

public class BaseClass {

  @Id

  @GeneratedValue

  private Long id;

  private Date date;

  // some fields

}

现在我继承了


@Entity  

public class SubClassA extends BaseClass {

  // some fields

}

interface BaseClassRep extends JpaRepository<BaseClass,Long>{

  @Query(nativeQuery = true, value = "select id,date from baseclass where date = ?1")

  public BaseClass getByDate(Date date)

}

问题是 BaseClassRep 不仅返回 BaseClass,还返回 SubClassA 以及从 BaseClass 继承的所有其他子类。


如何告诉 Hibernate 我真的只想要基类而不是子类。


四季花海
浏览 115回答 2
2回答

拉风的咖菲猫

我认为您必须使用 TABLE_PER_CLASS 继承类型:@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)&nbsp;,然后为超类创建一个存储库并获取数据。

ITMISS

(Java /JPA | 具有指定继承类型的查询)select&nbsp;id,date&nbsp;from&nbsp;baseclass&nbsp;b&nbsp;where&nbsp;date&nbsp;=&nbsp;?1&nbsp;and&nbsp;b.class&nbsp;=&nbsp;?2
随时随地看视频慕课网APP

相关分类

Java
我要回答