Wenn das Dienstprogramm Generator von pureQuery eine Implementierung für eine mit Annotationen versehene Methode in der Schnittstelle erstellt, überprüft es die XML-Konfigurationsdatei auf eine SQL-Anweisung hin, die verwendet werden soll, wenn die Methode mit einer leeren Annotation definiert ist, oder auf einen Wert hin, mit dem die SQL-Anweisung überschrieben werden soll, die in der Annotation der Methode verwendet wird. Das Dienstprogramm Generator von pureQuery überprüft die XML-Konfigurationsdatei auch auf Beans, auf die die Datei verweist.
Um eine XML-Konfigurationsdatei anzugeben, verwenden Sie beim Aufrufen von Generator von pureQuery die Option xmlFile.
Die folgenden Beispiele zeigen Situationen, in denen die Verwendung von XML-Konfigurationsdateien sinnvoll sein kann.
Sie können z. B. eine mit Annotationen versehene Methode in der Schnittstelle wie folgt definieren:
@Select Iterator<Customer> getCustomersInRegion(int r);
In der XML-Konfigurationsdatei für eine Anwendung definieren Sie die SQL-Anweisung, die Sie für diese Methode verwenden wollen:
<named-native-query name="myPackage.CustomerInterface#getCustomersInRegion(int)"> <query> <![CDATA[SELECT CUSTID, NAME FROM Customer WHERE STOREREGION=?1]]> </query> </named-native-query>
In der XML-Konfigurationsdatei für die andere Anwendung machen Sie dasselbe:
<named-native-query name="myPackage.CustomerInterface#getCustomersInRegion(int)"> <query> <![CDATA[SELECT ID, NAME FROM CUST WHERE REGION=?1]]> </query> </named-native-query>
Die Schnittstelle könnte z. B. diese Definition für eine mit Annotationen versehene Methode enthalten, die von der ersten Anwendung verwendet wird:
@Select(sql="SELECT CUSTID, NAME FROM Customer WHERE STOREREGION=?1") Iterator<Customer> getCustomersInRegion(int r);
In der XML-Konfigurationsdatei für die andere Anwendung können Sie die SQL-Anweisungen wie folgt überschreiben:
<named-native-query name="myPackage.CustomerInterface#getCustomersInRegion(int)"> <query> <![CDATA[SELECT ID, NAME FROM CUST WHERE REGION=?1]]> </query> </named-native-query>