我在Glassfish上运行的JEE6应用程序上使用JPA。
我想从表中选择多个记录。假设每个记录都有一个名为“serialnumber”的列。我有一个动态的序列号列表,我想从表中选择带有这些序列号的记录。
没有使用for循环有没有办法解决这个问题?
答案 0 :(得分:3)
您可以使用IN
子句将列表作为parameter
实施例
select DISTINCT obj from Obj where obj.number IN :numbersList
有关详细信息,请参阅Here。
答案 1 :(得分:2)
您可以在JPQL中编写NamedQuery,它使用IN语句选择具有给定序列号的所有实体(就像在纯SQL中一样)
类似的东西:
SELECT i FROM Item i WHERE i.serialNumber IN :serialNumbers
然后在DAO层方法中,将序列号数组传递给查询:
query.setParameter('serialNumbers', serials);
答案 2 :(得分:1)
您可以使用JPQL和IN
子句:
select item from Item item where item.serial IN :serials