2013-05-08 3 views
1

Я использую JPA на моем приложении JEE6, работающем на Glassfish.Множественный выбор с использованием JPA

Я хочу выбрать несколько записей из таблицы. Скажем, каждая запись имеет столбец с именем «serialnumber». И у меня есть динамический список серийных номеров, а из таблицы я хочу выбрать записи с этими серийными номерами.

Есть ли способ для этого без использования цикла for?

+1

теперь вы уверены, что вам следует использовать предложение IN;) – MoienGK

ответ

2

Вы можете написать NamedQuery в JPQL, который выбирает все объекты с заданными серийными номерами с использованием IN заявления (так же, как в обычной SQL)

Что-то вроде:

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

А затем в методе DAO слоя вы передаете массив последовательного количес ДЗ для запроса:

query.setParameter('serialNumbers', serials); 
+0

спасибо, а что, если мне нужно что-то кратное; как список записей, где serialnumber - это blah, а статус - blah – Spring

+1

, тогда вы расширяете инструкцию WHERE с: WHERE i.serialNumber IN: serialNumbers AND i.status =: status – pedjaradenkovic

1

Вы можете сделать это с JPQL и IN пункта:

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

3

Вы можете использовать IN пункт, который принимает список как parameter

Ex

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

См Here для дальнейшего использования.

+0

+1 для справки – gaborsch

+0

@GaborSch Thankyou :) –

Смежные вопросы