Comment passer une table Integer Array à IN dans MyBatis
Il y a une question dans mon Mybatis contenant une clause qui est essentiellement un ensemble d'identité du ( des Entiers)
Je suis maintenant coincé sur comment puis-je passer d'un tableau d'Entiers à la présente clause afin qu'il tire de la bonne documentation.Tenté par le passage d'une Chaîne de caractères contenant l'ID de la clause , mais cela ne fonctionne pas comme prévu.
Exemple de Code ci-dessous
Mybatis Méthode à l'aide d'Annotations
@Select(SEL_QUERY)
@Results(value = {@Result(property="id",column="ID")})
List<Integer> getIds(@Param("usrIds") Integer[] usrIds);
Requête
select distinct ID from table a where a.id in ( #{usrIds} )
Appel De La Méthode
Integer[] arr = new Integer[2];
arr[0] = 1;
arr[1] = 2;
mapper.getIds(arr)
Ce n'est pas de travail , Mybatis renvoie une erreur lorsque j'appelle le mappeur méthode
Toutes les suggestions s'il vous plaît
source d'informationauteur Vivek | 2012-01-06
Vous devez vous connecter pour publier un commentaire.
La myBatis Guide de l'Utilisateur sur le SQL Dynamique a un exemple sur la façon d'utiliser une boucle foreach pour construire la chaîne de requête, qui travaille pour les listes et les tableaux.
Avant la version 3.2 vous avez eu à utiliser des fichiers xml de configuration pour utiliser le sql dynamique, avec des versions plus récentes, il devrait également être possible d'utiliser le sql dynamique des annotations.
OUI, vous pouvez le faire à l'aide d'annotations.
Si vous utilisez postgresqlvous pouvez faire comme dans ce post.
Si vous utilisez MySQL essayer ce changement dans votre exemple de code:
Mybatis Méthode à l'aide d'Annotations
Requête (à l'aide de MySQL)
Appel de la méthode