Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Hibernate NamedNativeQuery,如何绑定这些参数:其中(p1,p2)位于((v1_1,v1_2),(v2_1,v2_2))_Java_Hibernate - Fatal编程技术网

Java 使用Hibernate NamedNativeQuery,如何绑定这些参数:其中(p1,p2)位于((v1_1,v1_2),(v2_1,v2_2))

Java 使用Hibernate NamedNativeQuery,如何绑定这些参数:其中(p1,p2)位于((v1_1,v1_2),(v2_1,v2_2)),java,hibernate,Java,Hibernate,我想编写一个NativeNamedQuery,它允许我执行以下操作: 从my_表中选择*,其中(c1,c2)位于((“v1_1”,“v1_2”),(“v2_1”,“v2_2”),…); 这就是我被卡住的地方: @namednaviequiries({ @命名设备( name=“MyQuery”, query=“从我的表格中选择*,其中(:v1,:v2));”, 结果映射=“MyMapper”) }) 如何绑定值的组合?即: publicslist某物(){ //这显然是错误的,能做到吗?

我想编写一个NativeNamedQuery,它允许我执行以下操作:

从my_表中选择*,其中(c1,c2)位于((“v1_1”,“v1_2”),(“v2_1”,“v2_2”),…);
这就是我被卡住的地方:

@namednaviequiries({
@命名设备(
name=“MyQuery”,
query=“从我的表格中选择*,其中(:v1,:v2));”,
结果映射=“MyMapper”)
}) 
如何绑定值的组合?即:

publicslist某物(){
//这显然是错误的,能做到吗?
返回(列表)getNamedQuery(“MyQuery”)
.setParameter(新字符串[]{“v1”、“v2”},新对象[]{新字符串[]{“v1_1”、“v1_2”},新字符串[]{“v2_1”、“v2_2”},…})
.list();
}

重要提示:值组合的数量必须是可变的。这意味着我需要能够对参数集
新对象[]{new String[]{“v1_1”,v1_2}}
新对象[]{new String[]{“v1_1”,“v1_2”},新字符串[]{“v2_1”,“v2_2”}
更新我自己下面问题的解决方案。这并不漂亮,但它很好用

@namednaviequiries({
@命名设备(
name=“MyQuery”,
query=“从我的表格中选择*,其中c1位于(:v1)”+
“和c2英寸(:v2)”+
以及(:concatV1V2)中的concat(c1,“~”,c2),
结果映射=“MyMapper”)
}) 
返回(列表)getNamedQuery(“MyQuery”)
.setParameter(“v1”,新字符串[]{“v1_1”,“v2_1”})
.setParameter(“v2”,新字符串[]{“v1_2”,“v2_2”})
.setParameter(“concatV1V2”,新字符串[]{“v1_1~v1_2”,“v2_1~v2_2”})
.list();
我仍然使用v1和v2列的原因是为了性能,因为它们可以被索引。我们首先缩小到一小部分行,然后使用结果上的(非索引)concat将其缩小到所需的行