在包含用戶,帖子和消息的自定義博客平臺中。 我知道如何做一個具有不同用戶和他們的發佈計數的HQL查詢。也不同的用戶和他們的消息數量。Hibernate HQL Query Subselects or Joins
但是,如果我將兩者結合起來使用「內連接」技術,我可以獲得相同的帖子和消息數。我明白爲什麼這是因爲加入而發生的。我怎麼能在HQL中進行子選擇以分別得到兩個計數,但是作爲一次數據庫訪問?
這是我試過的最後一個HQL查詢的一個例子。
select u.username, count(m), count(p) from User as u
inner join u.Messages as m
inner join u.Posts as p
group by u.id
order by count(m) desc
注意:我將根據網頁上的選項更改訂單。
看看hibernate投影在某些時候處理這樣的事情。此外,我不確定HQL是否會讓你這樣做,但你可以像標準的SQL一樣執行'count(distinct m.id)'和'count(distinct p.id)'。 –
是的,我不得不多花一些時間看看投影。來一個C#LINQ背景我仍然試圖圍繞在LINQ和Hibernate中投影的區別。 +1的想法 – BuddyJoe