我有一個用戶表,它包含兩種不同類型的用戶(A和B)。 A型用戶可以與B型用戶建立關係(記錄在關係表中)。類型A用戶可以與類型B用戶關係的數量記錄在另一個表中的字段中。使用Hibernate根據另一個表中的記錄數來提取記錄
我想讓Hibernate返回所有沒有建立完全關係的A型用戶。我有一個SQL查詢,將做到這一點。我需要做什麼?
編輯
我已經設法通過投擲我查詢到執行Session.createSQLQuery()得到這個工作,但它似乎不可思議有SQL塊在這一切之中非常棒的休眠代碼。我認爲,如果可能的話,應該在HSQL或Hibernate對象中使用它。
這是我試圖轉換爲HSQL僞查詢:
select userId
from (
select user_id, max_mentees, count(connection_id) num_mentees
from user_table
join mentor on mentor_id = user_id and user_status = 'ACTIVE'
left join connections on connection_mentor_id = mentor_id
and connection_status = 'ACTIVE' and connection_end > sysdate
group by user_id, max_mentees, connection_id
)
where (max_mentees > num_mentees)
group by user_id
'我想讓Hibernate返回所有未建立完全關係的A型用戶何時?什麼時候做? – 2010-08-18 22:23:12
基本上,A用戶將成爲B用戶的導師,A用戶每次可以擁有多少「受指導者」。計數是查看有多少B(受指導者)用戶分配給A(指導者)用戶,以便我們可以將其與另一個表中的限制數進行比較。 – 2010-08-19 12:43:28