【发布时间】:2016-07-01 01:28:57
【问题描述】:
我在 HQL 中遇到了一个不寻常的问题,但我没有找到解决方案 ->
我有一个包含 A,B,C,D... 列的表,我想使用 B,C,D 的组合列表来请求。示例:
表格
+----------+----------+----------+----------+<br/>
|----PK----|-----B----|-----C----|-----D----|<br/>
+----------+----------+----------+----------+<br/>
|-----1-----|-----2-----|-----3----|-----4----|<br/>
+----------+----------+----------+----------+<br/>
|-----2-----|-----5-----|-----4----|-----7----|<br/>
+----------+----------+----------+----------+<br/>
|-----3-----|-----7-----|-----9----|-----8----|<br/>
+----------+----------+----------+----------+<br/>
|-----4-----|-----6-----|-----4----|-----9----|<br/>
+----------+----------+----------+----------+<br/>
|-----5-----|-----6-----|-----4----|-----7----|<br/>
我有一个 B、C、D 组合的列表,例如:comb1 : 5,4,7 |梳子2:6,4,9。 我想检索具有这些组合之一的所有行。 在此示例中,我想检索第 2 行和第 4 行。
我尝试了这个方法:创建 3 个列表 B_List、C_List、D_List 和这个请求:
选择 * FROM实体e WHERE e.B in(:B_List) AND e.c in(:C_List) AND e.d in(:D_List)
但此请求可能会检索到不需要的行,例如第 5 行。
我也试过了:
选择 * FROM实体e WHERE (e.b,e.c,e.d) in (:B_List,:C_List,:D_List)
但这种语法在 HQL 中似乎是错误的。 有人有想法吗?对不起我的英语>.>
【问题讨论】:
标签: java mysql sql hibernate hql