1

我在 Glassfish 上运行的 JEE6 应用程序上使用 JPA。

我想从一个表中选择多条记录。假设每条记录都有一个名为“序列号”的列,我有一个序列号的动态列表,我想从表中选择具有这些序列号的记录。

有没有办法在不使用 for 循环的情况下做到这一点?

4

3 回答 3

3

您可以使用IN将列表作为parameter

前任

select DISTINCT obj from Obj  where obj.number IN :numbersList

请参阅此处以获取更多参考。

于 2013-05-08T12:37:49.253 回答
2

您可以在 JPQL 中编写 NamedQuery,它使用 IN 语句选择具有给定序列号的所有实体(就像在普通 SQL 中一样)

就像是:

SELECT i FROM Item i WHERE i.serialNumber IN :serialNumbers

然后在 DAO 层方法中,将序列号数组传递给查询:

query.setParameter('serialNumbers', serials);
于 2013-05-08T12:37:11.253 回答
1

您可以使用 JPQL 和IN子句来做到这一点:

select item from Item item where item.serial IN :serials

于 2013-05-08T12:37:00.800 回答