Lorsque le générateur pureQuery crée une implémentation pour une méthode annotée dans l'interface, il contrôle le fichier de configuration XML d'une instruction SQL à utiliser si la méthode est définie avec une annotation vierge ou pour remplacer l'instruction SQL utilisée dans l'annotation de la méthode. Le générateur pureQuery contrôle également le fichier de configuration XML des beans auxquels le fichier peut faire référence.
Pour définir un fichier de configuration XML, utilisez l'option xmlFile lorsque vous appelez le générateur pureQuery.
Les exemples suivants présentent des situations dans lesquelles vous pouvez utiliser les fichiers de configuration XML.
Par exemple, vous pouvez définir une méthode annotée dans l'interface comme suit :
@Select Iterator<Customer> getCustomersInRegion(int r);
Dans le fichier de configuration XML d'une seule application, définissez l'instruction SQL que vous souhaitez utiliser pour cette méthode :
<named-native-query name="myPackage.CustomerInterface#getCustomersInRegion(int)"> <query> <![CDATA[SELECT CUSTID, NAME FROM Customer WHERE STOREREGION=?1]]> </query> </named-native-query>
Dans le fichier de configuration XML de l'autre application, faites la même chose :
<named-native-query name="myPackage.CustomerInterface#getCustomersInRegion(int)"> <query> <![CDATA[SELECT ID, NAME FROM CUST WHERE REGION=?1]]> </query> </named-native-query>
Par exemple, l'interface peut contenir cette définition pour une méthode annotée que la première application utilise :
@Select(sql="SELECT CUSTID, NAME FROM Customer WHERE STOREREGION=?1") Iterator<Customer> getCustomersInRegion(int r);
Dans le fichier de configuration XML de l'autre application, vous pouvez remplacer l'instruction SQL comme suit :
<named-native-query name="myPackage.CustomerInterface#getCustomersInRegion(int)"> <query> <![CDATA[SELECT ID, NAME FROM CUST WHERE REGION=?1]]> </query> </named-native-query>