Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.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
Hibernate 用于多个组合输入的单个JPQL查询或条件_Hibernate_Jpa_Jakarta Ee - Fatal编程技术网

Hibernate 用于多个组合输入的单个JPQL查询或条件

Hibernate 用于多个组合输入的单个JPQL查询或条件,hibernate,jpa,jakarta-ee,Hibernate,Jpa,Jakarta Ee,我使用下面的JPQL查询来检查是否存在学生的姓名和id组合 select id from student where name='name' and id=1 现在我需要一次检查1000个组合。 运行同一查询1000次会对性能造成威胁。 我不确定我们是否可以用1000个组合进行单个查询。 这1000个组合来自用户界面,所以连接是不可能的。 我们能用JPQL/标准实现这一点吗?(没有临时表/plsql)我认为没有性能问题是无法做到的,但是,您可以使用union all Station来改进它,例

我使用下面的JPQL查询来检查是否存在学生的姓名和id组合

select id from student where name='name' and id=1
现在我需要一次检查1000个组合。 运行同一查询1000次会对性能造成威胁。 我不确定我们是否可以用1000个组合进行单个查询。 这1000个组合来自用户界面,所以连接是不可能的。
我们能用JPQL/标准实现这一点吗?(没有临时表/plsql)

我认为没有性能问题是无法做到的,但是,您可以使用union all Station来改进它,例如:

select id from student where name='name' and id=1 union all select id from student where name='name2' and id=2

你能告诉我们完整的查询是什么样的,比如说3个组合吗?像这样的
从student where(name='name'和id=1)或(name='name2'和id=2)或(name='name3'和id=3)中选择id
。对于1000个组合,有什么简单的方法可以做到这一点吗?您使用的是什么数据库?您总是可以退回到手动构建查询的方式,即JPQL或原生SQL.jpa2.0(hibernate-jpa-2.0-api-1.0.Final.jar)和oracle
'select id from student where(name='name'和id=1)或(name='name2'和id=2)或(name='name3'和id=3)
。但对于1000个组合来说,这是一个好的解决方案吗?