簡體   English   中英

Hibernate繼承中的LEFT OUTER JOIN

[英]LEFT OUTER JOIN in Hibernate Inheritance

我有以下課程

@Inheritance(strategy=InheritanceType.JOINED)
 Class A{
 private long a_id;
 private C C;

 }

 Class B extends A{
 private D d;
 }

 Class C{
 private long c_id;
 }

 Class D{
 private long d_id;
 private Set<B> bs;
 }

B類是A類的擴展。嘗試按以下方式查詢

Criterion criterion = Restrictions.and(Restrictions.eq(
                    "b.c", c_instance));

 Criteria c = session.createCriteria(D.class, "d")
 c.createAlias("bs", "b",JoinType.LEFT_OUTER_JOIN,criterion);
 c.createAlias("bs.c","c")

輸出查詢:

select d.d_id from D d left outer join B bs on d.d_id=bs.d_id and bs.c_id=2489 inner join A on bs.a_id=A.a_id inner join C A.c_id=C.c_id 

我收到錯誤消息,因為c_id是B中的unknonwn列。盡管表B沒有其父表中的c_id列。 如何在此處編寫查詢以實現左外部聯接?

我猜bs是B類的集合,您正在嘗試從B類中獲取c.createAlias(“ bs.c”,“ c”)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM