어노테이션이 있는 메소드를 사용할 때 둘 이상의 Bean 리턴

SELECT문이 둘 이상의 데이터베이스 오브젝트를 쿼리하고 사용자가 어노테이션이 있는 메소드를 사용하는 경우, 각 오브젝트의 데이터를 독립된 Bean에 리턴할 수 있습니다.

프로시저

둘 이상의 데이터베이스 오브젝트를 쿼리하는 단일 SELECT문에 대해 둘 이상의 Bean을 리턴하려면 다음을 수행하십시오.

  1. LinkedList 또는 ArrayList를 확장하는 일반 클래스를 선언하십시오. 매개변수화된 콜렉션이 포함하는 오브젝트 수는 쿼리에서 리턴되는 Bean 수를 정의합니다.
  2. 메소드의 서명에 리턴 유형을 Iterator 또는 List 오브젝트로 지정하십시오. 매개변수화된 콜렉션을 해당 오브젝트의 유형으로 지정하십시오.

예제

이 명령문을 실행하여 첫 번째 테이블의 결과를 Contact Bean에 리턴하고 두 번째 테이블의 결과를 Person Bean에 리턴하려고 합니다.

select CONTACTTABLE.IDNUMBER, PERSONTABLE.SSN from CONTACTTABLE, PERSONTABLE

다음과 같이 일반 클래스 ContactAndPerson을 정의할 수 있습니다.

public class ContactAndPerson<C, P> extends LinkedList{}

모든 쌍의 ContactPerson Bean을 Iterator 오브젝트에 배치하려고 합니다. 따라서 다음과 같이 리턴 유형을 정의합니다.

@Select(sql = "select CONTACTTABLE.IDNUMBER, PERSONTABLE.SSN from CONTACTTABLE, PERSONTABLE")  
Iterator<ContactAndPerson<Contact, Person>> selectFromContactPerson ();

피드백