어노테이션이 있는 메소드 또는 인라인 메소드를 사용하여
메모리의 Java™ 콜렉션(예: 배열,
java.lang.Iterable을 구현하는 클래스 및 java.util.Iterator를 구현하는 클래스)을
쿼리할 수 있습니다.
콜렉션에 대한 쿼리와 함께 SQL을 사용하여
데이터베이스 오브젝트에 대한 쿼리에 의해 리턴되는
오브젝트 세트를 필터할 수 있습니다. 오브젝트는
연결된 데이터 소스에 대한 이전 쿼리에 의해 구체화됩니다. SQL 92 표준을 따르는 모든 SELECT문을
사용할 수 있습니다.
예를 들어, List 오브젝트를 테이블의 레코드당 하나의 Customer
오브젝트로 채우는 데이터베이스 테이블 CUSTOMER에 대해 쿼리를
실행합니다. 그런 다음, List 오브젝트에 대해 쿼리를 수행합니다.
두 번째 쿼리는 콜렉션에 대한 쿼리입니다. 이 두 번째 쿼리 및
List 오브젝트에 대한 모든 후속 쿼리의 경우,
List 오브젝트의 컨텐츠가 메모리에 있으므로
데이터베이스에 대한 연결이 더 이상 필요하지 않습니다.
주의: Iterator 오브젝트를 사용하는 경우,
다음 사항을 잊지 마십시오.
- Iterator 오브젝트에 쿼리 결과를 구체화한 후,
해당 Iterator 오브젝트의 사용을 완료할 때까지 데이터베이스에 대한 연결을
열어둬야 합니다.
- java.util.Iterator를 구현하는 오브젝트의 컨텐츠를 검사하는 조치는
해당 컨텐츠가 이용되는 원인이 되고 컨텐츠의 시작 부분에서 다시 시작되는
방법은 없습니다.
- Iterator 오브젝트가 처음에 비어있는 경우를 제외하고
쿼리가 완료된 후까지 Iterator 오브젝트에 있는 오브젝트 수를 알 수 있는 방법은
없습니다.