Utilisation de fichiers de configuration XML avec l'utilitaire Generator de pureQuery

Lorsque vous générez une classe d'implémentation pour une interface définissant des méthodes annotées, vous pouvez utiliser un fichier XML pour définir ou remplacer les instructions SQL utilisées par ces méthodes. Vous pouvez également utiliser le même fichier XML pour remplacer les colonnes d'un objet de base de données, tel qu'un tableau ou une vue ou encore une mappe vers les propriétés d'un bean.

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.

Exemple d'utilisations des fichiers de configuration XML pour définir ou remplacer les instructions SQL des interfaces définissant les méthodes annotées

Les exemples suivants présentent des situations dans lesquelles vous pouvez utiliser les fichiers de configuration XML.

Vous pouvez remplacer les instructions SQL d'une interface dans des cas comme ceux-ci :
  • Vous souhaitez utiliser l'interface dans deux applications différentes exécutant deux bases de données différentes. Au lieu de contenir les instructions SQL de l'interface, vous créez un fichier de configuration XML pour chaque application, les instructions SQL pour chaque application de chaque fichier 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>
  • Vous avez ajouté des instructions SQL à l'interface et ces instructions prennent en charge une seule application. Vous souhaitez maintenant utiliser l'interface dans une seconde application exécutant une autre base de données. Lorsque vous générez une classe d'implémentation pour la seconde application, vous pouvez utiliser un fichier XML pour remplacer les instructions SQL qui existent dans l'interface.

    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>

Commentaires