2010-09-07 59 views
0

我有SQL查詢,我不知道如何在休眠如何在休眠

select lp.lnprdtname,la.lid,la.step 
from mfic.lnapp as la 
left join mfic.lnprdt as lp on lp.lnprdtid in 
    (select lnprdtid from mfic.lnapp where lid in 
     (select lid from mfic.lnbrwr where brwrid in 
      (select brwrid from mfic.brwr where uid=1))) 
where la.lid in 
    (select lid from mfic.lnbrwr where brwrid in 
     (select brwrid from mfic.brwr where uid=1)); 

感謝寫事先編寫子查詢

+0

此查詢應該被重構,以使用連接。 – dotjoe 2010-09-07 16:29:28

回答

1

如這裏說: Chapter 14. HQL: The Hibernate Query Language - 14.13. Subqueries

from DomesticCat as cat 
where cat.name not in (
    select name.nickName from Name as name 
) 

請注意,HQL子查詢只能出現在select或where子句中。

無論如何,我不知道這是一個好主意,在一個單一的語句Concat的這麼多的子查詢...

+0

好的,謝謝,還有其他想法嗎? – Ganesamoorthy 2010-09-07 16:36:10

+0

是的,我會嘗試在數據庫視圖中編寫這些子查詢,並使Hibernate訪問更加容易。 – 2010-09-07 16:51:38