[英]Is it possible to create 2 children in a joined inheritance with Spring jpa?
[英]Spring Jpa inheritance type joined select only baseclass
我只選擇基類時遇到問題,無法為此找到解決方案。 我也總是獲得子類,而不僅僅是基類。
考慮我有基礎課
@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我真的只想要基類而不想要子類。
您可以使用類型運算符。 請看以下鏈接
select id,date from baseclass b where date = ?1 and b.class = ?2
我認為您必須使用TABLE_PER_CLASS繼承類型:
@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)
,然后為超類創建一個存儲庫,然后獲取數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.