我在 Glassfish 上运行的 JEE6 应用程序上使用 JPA。
我想从一个表中选择多条记录。假设每条记录都有一个名为“序列号”的列,我有一个序列号的动态列表,我想从表中选择具有这些序列号的记录。
有没有办法在不使用 for 循环的情况下做到这一点?
您可以使用IN
将列表作为parameter
前任
select DISTINCT obj from Obj where obj.number IN :numbersList
请参阅此处以获取更多参考。
您可以在 JPQL 中编写 NamedQuery,它使用 IN 语句选择具有给定序列号的所有实体(就像在普通 SQL 中一样)
就像是:
SELECT i FROM Item i WHERE i.serialNumber IN :serialNumbers
然后在 DAO 层方法中,将序列号数组传递给查询:
query.setParameter('serialNumbers', serials);
您可以使用 JPQL 和IN
子句来做到这一点:
select item from Item item where item.serial IN :serials