어노테이션이 있는 메소드에 대한 구현을 인터페이스에 작성할 때 pureQuery Generator는 메소드에 빈 어노테이션이 정의되어 있는 경우에 사용할 SQL문 또는 메소드의 어노테이션에 사용되는 SQL문의 겹쳐쓰기에 대해 XML 구성 파일을 점검합니다. pureQuery Generator는 또한 파일이 참조할 수 있는 모든 Bean에 대해서도 XML 구성 파일을 점검합니다.
XML 구성 파일을 지정하려면 pureQuery Generator를 호출할 때 xmlFile 옵션을 사용하십시오.
다음 예제에서는 XML 구성 파일을 사용하려고 할 수 있는 상황에 대해 설명합니다.
예를 들어, 다음과 같이 인터페이스에 어노테이션이 있는 메소드를 정의할 수 있습니다.
@Select Iterator<Customer> getCustomersInRegion(int r);
한 응용프로그램에 대한 XML 구성 파일에 이 메소드에 대해 사용하려는 SQL문을 정의합니다.
<named-native-query name="myPackage.CustomerInterface#getCustomersInRegion(int)"> <query> <![CDATA[SELECT CUSTID, NAME FROM Customer WHERE STOREREGION=?1]]> </query> </named-native-query>
다른 응용프로그램에 대한 XML 구성 파일에 동일한 작업을 수행합니다.
<named-native-query name="myPackage.CustomerInterface#getCustomersInRegion(int)"> <query> <![CDATA[SELECT ID, NAME FROM CUST WHERE REGION=?1]]> </query> </named-native-query>
예를 들어, 인터페이스에 첫 번째 응용프로그램에서 사용하는 어노테이션이 있는 메소드에 대한 다음 정의가 포함될 수 있습니다.
@Select(sql="SELECT CUSTID, NAME FROM Customer WHERE STOREREGION=?1") Iterator<Customer> getCustomersInRegion(int r);
다른 응용프로그램에 대한 XML 구성 파일에서 다음과 같이 SQL을 겹쳐쓸 수 있습니다.
<named-native-query name="myPackage.CustomerInterface#getCustomersInRegion(int)"> <query> <![CDATA[SELECT ID, NAME FROM CUST WHERE REGION=?1]]> </query> </named-native-query>