Udo Held Udo Held - 3 months ago 33
Java Question

JPA concat operator

Is there a JPA concat operator for string concatenation?

I know there is a JPA

CONCAT
function, however its ugly to use for concatenating multiple strings.

CONCAT(CONCAT(CONCAT(cola,colb),colc),cold)


Vendors like Oracle offer
||
some other like Microsoft offer
+
. Is there a standard JPA concatenation operator so that I could create a query like

cola || colb || colc || cold


I tried
+
using openjpa with SQL Server, however it seems to be invalid JPQL. I couldn't find anything regarding such an operator in an oracle reference.

Answer

The CONCAT function was extended in JPA 2.0 to allow passing more than 2 parameters, from section 4.6.17.2.1 (String Functions) of the specification:

CONCAT(string_primary, string_primary {, string_primary}* )

In JPA 1 this was restricted to exactly two parameters.