使用JPA进行多项选择

时间:2013-05-08 12:34:49

标签: java sql hibernate jpa

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

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

没有使用for循环有没有办法解决这个问题?

3 个答案:

答案 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