2013-05-08 5 views
1

Glassfish에서 실행되는 JEE6 응용 프로그램에서 JPA를 사용합니다.JPA를 사용하여 여러 번 선택

테이블에서 여러 레코드를 선택하고 싶습니다. 각 레코드에 "serialnumber"라는 열이 있다고 가정 해 봅시다. 그리고 일련 번호의 동적 목록이 있으며 테이블에서 해당 일련 번호가있는 레코드를 선택하려고합니다.

for 루프를 사용하지 않고이 방법이 있습니까?

+1

이제 IN 절을 사용해야합니다.) – MoienGK

답변

2
당신은

(그냥 일반 SQL처럼) 성명을 사용하여 주어진 일련 번호를 가진 모든 엔티티를 선택하는 JPQL에 NamedQuery을 쓸 수

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

그리고 DAO 계층 방법 당신은 시리얼 한 접점의 배열을 전달 :

뭔가 같은 쿼리에 RS :

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

감사합니다. serialnumber가 blah이고 status가 blah 인 경우 – Spring

+1

과 같이 WHERE 절을 다음과 같이 확장합니다. WHERE i.serialNumber IN : serialNumbers AND i.status = : 상태 – pedjaradenkovic

1

당신은 JPQL 및 IN 절을 수행 할 수 있습니다

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

3

당신은 더 참조 Here을 참조하십시오 parameter

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

으로 목록을 취 IN 절을 사용할 수 있습니다.

+0

+1 – gaborsch

+0

@GaborSch 고맙습니다. :) –

관련 문제