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 子句中传递的项目的索引

JPQL查询where子句使用IN,如何将参数传递给查询

通过 FMDB 将数组传递给 sqlite WHERE IN 子句?

将列表传递给 HQL 或 SQL 中的 IN 子句?

JPQL IN 子句:Java 数组(或列表、集合...)?

JPA 多对多JPQL查询语句怎么写?