En passant une Liste<Integer> au printemps de données jpa requête native
À l'aide de spring data JPA, je suis en train de faire ce genre de requête (c'est plus complexe, c'est un cas simple)
@Query(nativeQuery = true,
value = "SELECT * FROM events WHERE typeId IN (?1)")
List<Event> findEventsByType(List<Integer> types);
Lorsque je lance la requête, une exception soulève:
org.postgresql.util.PSQLException: Can't infer the SQL type to use for an instance of java.util.ArrayList. Use setObject() with an explicit Types value to specify the type to use.
J'ai essayé une Liste < Integer >, Integer[], Object[] et String mais ça ne fonctionne pas...
Je ne peux pas me passer de la liste de valeurs?
Qui est la meilleure approche pour faire ce genre de requêtes?
Merci!
C'est tout à fait un vieux post, mais avez-vous réussi à résoudre ce problème?
OriginalL'auteur Antonio Acevedo | 2013-10-25
Vous devez vous connecter pour publier un commentaire.
Utilisation JPQL. Une requête native est ou devrait être transmis à la base de données exactement comme vous l'avez créé la chaîne SQL, et à moins que votre pilote peut prendre un sérialisé de collecte et de comprendre que le seul paramètre qui doit être interprété comme beaucoup, il juste ne fonctionnera pas. La collection vous passez besoins SQL étendu à partir de (?) (?, ?,...) basé sur le nombre d'éléments dans une collection, et les pilotes JDBC ne sont tout simplement pas en mesure de le faire, et JPA fournisseurs sont nécessaires à l'exécution de la chaîne.
Une requête JPQL permet la JPA fournisseur pour créer le SQL il a besoin de façon dynamique en fonction de la liste transmis, de sorte qu'il peut élargir la collection pour vous.
OriginalL'auteur Chris
Essayez de prendre de suite la @Requête et de rendre le nom de la méthode:
Voir le tableau 2.2 dans le lien: http://docs.spring.io/spring-data/jpa/docs/1.2.0.RELEASE/reference/html/
OriginalL'auteur Thomas Turner
J'ai essayé comme ci-dessous et cela fonctionne pour moi.
OriginalL'auteur Sahil Chhabra
essayer de l'interrogation comme ceci:
fait-il?
OriginalL'auteur TommyW
De l'essayer.
Il va travailler.
Pour les Natifs de la Requête en SpringBoot JPA:
OriginalL'auteur rahulnikhare