Maison >base de données >tutoriel mysql >Comment échapper au caractère deux-points ':' dans les requêtes JPA pour MySQL ?

Comment échapper au caractère deux-points ':' dans les requêtes JPA pour MySQL ?

DDD
DDDoriginal
2024-11-07 15:27:03336parcourir

How to Escape the Colon Character ':' in JPA Queries for MySQL?

Échapper au caractère deux-points ':' dans les requêtes JPA

É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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn