Existe-t-il un opérateur de concaténation JPA pour la concaténation de chaînes?
Je sais qu'il y a une fonction JPA CONCAT
, mais c'est moche à utiliser pour concaténer plusieurs chaînes.
CONCAT(CONCAT(CONCAT(cola,colb),colc),cold)
Des fournisseurs comme Oracle proposent ||
une autre offre similaire à Microsoft +
. Existe-t-il un opérateur de concaténation JPA standard pour que je puisse créer une requête comme
cola || colb || colc || cold
J'ai essayé +
en utilisant openjpa avec SQL Server, mais il ne semble pas être valide JPQL. Je n'ai rien trouvé concernant un tel opérateur dans un référence Oracle .
La fonction CONCAT
a été étendue dans JPA 2. pour permettre le passage de plus de 2 paramètres, à partir de la section 4.6.17.2.1 (Fonctions de chaîne) de la spécification:
CONCAT(string_primary, string_primary {, string_primary}* )
Dans JPA 1, cela était limité à exactement deux paramètres.
Vous pouvez utiliser la fonction JPA Concat pour plusieurs chaînes.
Par exemple:
CONCAT(cola, colb, colc, cold)
Vous pouvez aussi utiliser ||
en tant qu'opérateur de concaténation, voir dans la documentation
HQL définit un opérateur de concaténation en plus de prendre en charge la fonction de concaténation (CONCAT). Ceci n'est pas défini par JPQL, donc les applications portables devraient éviter son utilisation. L'opérateur de concaténation est extrait de l'opérateur de concaténation SQL - ||.
Exemple 11.19. Exemple d'opération de concaténation
select 'Mr. ' || c.name.first || ' ' || c.name.last from Customer c where c.gender = Gender.MALE