簡體   English   中英

如何在休眠中使用條件創建內部查詢?

[英]how to create inner query using criteria in hibernate?

我有一個查詢,如:

SELECT * 
FROM mars_india.leave_x_user 
WHERE user_id in (SELECT user_id FROM mars_india.user where vendor_id=16);

我從stackoverflow獲得了以下解決方案,但無法理解:

criteria =criteria.createCriteria(user.USER_DOMAINS)
    .add(Restrictions.eq(UserDomain.DOMAIN, domain));

好吧...首先,您需要了解不必使用子查詢來獲取相同的信息。

試試這個查詢:

SELECT lxu.* FROM mars_india.leave_x_user lxu 
LEFT JOIN mars_india.user miu 
ON lxu.user_id = miu.user_id
WHERE miu.vendor_id=16

它應產生與查詢相同的結果。

JOIN語句是魔術。 簡而言之:它使兩個表的行為像一個表。 因此,現在您可以使用vendor_id來查詢此聯接表,並僅返回聯接表的一部分,該結果將記錄到“ leave_x_user”表中。

看到,您只需要一個具有一個限制的查詢就可以獲取相同的數據。

使用此條件查詢基本上就是您要做的。

為了學習標准查詢的語法,請在此處查看: https : //docs.jboss.org/hibernate/orm/3.3/reference/en/html/querycriteria.html

如果您需要更多具體信息,請發布您的域模型(映射到表的類)。

編碼愉快! :D

暫無
暫無

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

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