摘要: Hibernate的HQL語句中的“in條件”句如:x in(‘a’,’b’,’c’),要求的是x是(‘a’,’b’,’c’)中的一個元素,而select role.users這樣查出來的是集合的集合,它內部的元素應該是一個集合:set in (select role.users…),而不是一個對象: user in (select role.users…)。
可惜的是HQL語句沒有set in (select role.users….)這樣的子句,后來,查了一下Hibernate的參考文檔,得到解決方法。原來,Hibernate的HQL語句中的“in條件”中,可加入”elements”關鍵詞,即上面的查詢語句變成: