pureQuery observe cette règle uniquement lorsque le paramètre d'entrée pour une méthode est un bean ou un objet Map. Dans la mesure où la portion nom des marqueurs de paramètre est précédée de : ou ?, pureQuery les considère comme des identificateurs Java sensibles à la casse lors de la recherche des valeurs pureQuery correspondantes dans le bean ou l'objet Map.
pureQuery ne modifie pas les règles Java pour l'égalité des identificateurs lorsqu'un identificateur est utilisé uniquement par Java. De même, pureQuery ne modifie pas les règles SQL concernant l'égalité des identificateurs lorsqu'un identifiant est utilisé uniquement par SQL.
Exemple 1
Dans cet exemple, une méthode annotée utilise un bean nommé Act comme paramètre d'entrée et exécute une instruction SELECT sur une base de données. Les résultats de l'instruction SELECT sont filtrés à l'aide de la valeur d'une des propriétés du bean.
@Select(sql="select ACTNO, ACTKWD, ACTDESC from ACT where ACTNO = :actNo")
Act getAct(Act a);
Lors de l'exécution de l'instruction SELECT, pureQuery recherche d'abord dans le bean une méthode getActNo(). S'il ne la trouve pas, pureQuery recherche une propriété portant le nom actNo". S'il ne la trouve pas, pureQuery transmet l'objet String "actNo" à la méthode get(String) du bean, si le bean définit une telle méthode.
Lors du renvoi des objets Act correspondant à des enregistrements, pureQuery convertit en minuscules les libellés des colonnes SQL. Puis, pureQuery génère le bean.
Exemple 2
Supposons que la méthode utilise un objet Map comme paramètre d'entrée et renvoie une List d'objets Map :
@Select(sql="select ACTNO, ACTKWD, ACTDESC from ACT where ACTNO = :actNo")
List<Map<String, Object>> getAct(Map<String, Object> a);
Lors de l'exécution de l'instruction SELECT, pureQuery transmet l'objet String "actNo" à la méthode get(String) de l'objet Map. En cas de renvoi d'objets Map correspondant à des enregistrements, pureQuery convertit en minuscules les libellés de colonne SQL avant de les transmettre à chaque objet Map de la méthode put().
Exemple 3
Dans l'étape suivante, une autre méthode annotée utilise également un bean Act comme paramètre d'entrée et exécute une instruction UPDATE sur une base de données. Les valeurs de l'instruction proviennent de propriétés du bean. La méthode renvoie un nombre de mises à jour.
@Update(sql="update ACT set ACTKWD = :actKwd, ACTDESC = :actDesc where ACTNO = :actNo")
int updateAct(Act a);
Lors de l'exécution de l'instruction UPDATE, pureQuery recherche des correspondances des paramètres dans l'instruction UPDATE portant des noms de méthode get() dans le bean, des noms de propriété du bean, puis get(String). Par exemple, pour le paramètre nommé actKwd, pureQuery recherche d'abord le bean d'une méthode getActKwd(). S'il ne le trouve pas, pureQuery recherche une propriété nommée actKwd". S'il ne la trouve pas, pureQuery transmet l'objet String "actKwd" à la méthode get(String) du bean, si le bean définit une telle méthode.