JPQL订单实体通过将ID传递给IN子句
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JPQL订单实体通过将ID传递给IN子句相关的知识,希望对你有一定的参考价值。
通过ID传递给带有弹簧数据存储库的IN子句的ID的可能的订单实体?
即时:
SELECT e FROM Employee WHERE e.id IN (:employeeIds);
和employeeIds = {1,2,3,4,5}
并且我的JPARepository结果列表将是相同顺序的实体:
Employee={id:1, ...}, Employee={id:2, ...}, Employee={id:3, ...}
答案
取决于所使用的数据库,您可以从传递的数组创建表,然后将实体连接到is,就像这样:
select e
from (values (1), (2), (3), ...) as t(id)
inner join employee e on t.id = e.id;
可以作为本地查询来评估:
entityManager.createNativeQuery(
"select e " +
"from (values (1), (2), (3), ...) as t(id) " +
"inner join employee e on t.id = e.id", Employee.class)
.gerResultList();
但是如您所见,您必须自己编写查询或传递很多od参数(可能在循环中)。
以上是关于JPQL订单实体通过将ID传递给IN子句的主要内容,如果未能解决你的问题,请参考以下文章
Spring JPA Hibernate JPQL 查找在 where 子句中传递的项目的索引
通过 FMDB 将数组传递给 sqlite WHERE IN 子句?