JPA concat operator

Udo Held picture Udo Held · Dec 14, 2011 · Viewed 49.2k times · Source

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

Jörn Horstmann picture Jörn Horstmann · Dec 14, 2011

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.