Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.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 JPQL中的多个IN条件_Java_Jpa_Jpql - Fatal编程技术网

Java JPQL中的多个IN条件

Java JPQL中的多个IN条件,java,jpa,jpql,Java,Jpa,Jpql,如何在JPQL中表达以下SQL: select * from table where ( ( table.col1 , table.col2) in (col1val1, col2val1), (col1val2, col2val2), (col1val3, col2val3) ) 顺便说一句:以上是有效的Oracle SQL语法编辑:忘记下面的内容,这是不正确的。留下来显示思考 我认为你首先必须把多维的陈述分解成它的组成部分: select * from table

如何在JPQL中表达以下SQL:

select * from table where 
( ( table.col1 , table.col2) in 
   (col1val1, col2val1),
   (col1val2, col2val2),
   (col1val3, col2val3)
)

顺便说一句:以上是有效的Oracle SQL语法编辑:忘记下面的内容,这是不正确的。留下来显示思考

我认为你首先必须把多维的陈述分解成它的组成部分:

select * from table 
where table.col1 in (col1val1, col1val2, col1val3)
and table.col2 in (col2val1, col2val2, col2val3)
这将在JPQL中转换(假设“table”映射到实体
TableDto
),如下所示:

select tableDto from TableDto tableDto 
where tableDto.col1 in(col1val1, col1val2, col1val3)
and tableDto.col2 in(col2val1, col2val2, col2val3)

以上内容未经测试,但更多信息可在中找到。

我的JPQL很糟糕,但以下内容如何:

select tableDto from TableDto tableDto 
where (tableDto.col1 = col1val1 and tableDto.col2 = col2val1)
or (tableDto.col1 = col1val2 and tableDto.col2 = col2val2)
or (tableDto.col1 = col1val3 and tableDto.col2 = col2val3)

这并不漂亮。

问题在于该查询将匹配(col1val1,col2val2),而原始查询不会匹配。