Énoncé du problème
Exécuter une requête JPA native avec un MySQL La variable utilisateur contenant ':' déclenche une exception en raison d'une syntaxe non valide : interdiction de suivre ':' avec un espace.
Solution
Pour résoudre ce problème, vous devez échapper aux caractères ':'. Ceci peut être réalisé en les faisant précéder d'un caractère antislash ''.
Voici la requête corrigée :
SELECT foo, bar, baz, @rownum:= if (@id = foo, @rownum+1, 1) as rownum, @id := foo as rep_id FROM foo_table ORDER BY foo, bar desc
Implémentation en JPA
Query q = getEntityManager().createNativeQuery(query, SomeClass.class); return q.getResultList();
Remarque :
La solution fournie suppose une base de données MySQL. Si vous utilisez d'autres bases de données, la syntaxe d'échappement des caractères spéciaux peut varier. Par conséquent, il est essentiel de se référer à la documentation spécifique de la base de données pour connaître les méthodes d'échappement recommandées.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!