JPA concat运算符

是否有用于字符串连接的JPA concat运算符?

我知道有一个JPA CONCAT函数,但它用于连接多个字符串很难看。

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

像Oracle这样的供应商提供了|| 其他一些像微软提供+ 。 是否有标准的JPA连接运算符,以便我可以创建一个类似的查询

 cola || colb || colc || cold 

我尝试使用openjpa与SQL Server,但它似乎是无效的JPQL。 我在oracle参考中找不到关于这样的运算符的任何内容。

CONCAT函数在JPA 2.0中进行了扩展,允许传递超过2个参数,来自规范的4.6.17.2.1节(字符串函数):

 CONCAT(string_primary, string_primary {, string_primary}* ) 

在JPA 1中,这仅限于两个参数。

您可以将JPA Concat函数用于多个字符串。

例如:

 CONCAT(cola, colb, colc, cold) 

你也可以使用|| 作为连接运算符,请参阅文档

除了支持串联(CONCAT)function外,HQL还定义了一个连接运算符。 这不是由JPQL定义的,因此便携式应用程序应该避免使用它。 连接运算符取自SQL连接运算符 – ||。

例11.19。 连接操作示例

 select 'Mr. ' || c.name.first || ' ' || c.name.last from Customer c where c.gender = Gender.MALE