我需要一些建議來創建一個hql查詢。查詢與HQL多對多連接表
情況:我已經設置了Nodes
,可以爲其指定一個可配置的數量Flags
。要做到這一點,我有以下類/表:
類:
class Node {
String name
}
class Flag {
String name
}
class NodeHasFlag {
Node node
Flag flag
boolean value
}
生成的表與一些樣本數據:
Node
id, name
1, 'a'
2, 'b'
3, 'c'
...
Flag
id, name
1, 'visible'
2, 'special'
...
NodeHasFlag
node_id, flag_id, value
1, 1, true // node 'a' is visible
2, 1, false // node 'b' is not visible
2, 2, true // node 'b' is special
3, 1, false // node 'c' is not visible
...
現在我需要一個HQL查詢來獲取節點列表基於旗幟。
一樣:給我是visible
和special
或者所有節點:給我是visible
所有節點和具有special
一個未定義的值(NodeHasFlag
表中沒有條目)
檢查單國旗很容易,但在同一時間檢查多個標誌正在給我帶來麻煩。
我'使用Grails和格姆,但我認爲這個問題將與標準的Java休眠
問題是HQL不支持相交或聯合。你可以做每個HQL語句,然後交叉列表。 – 2013-05-01 13:11:51