Java JPA concat运算符

Java JPA concat运算符,java,jpa,jpa-2.0,concatenation,jpql,Java,Jpa,Jpa 2.0,Concatenation,Jpql,是否有用于字符串连接的JPA concat运算符 我知道有一个JPACONCAT函数,但是用于连接多个字符串很难看 CONCAT(CONCAT(CONCAT(cola,colb),colc),cold) 像Oracle这样的供应商提供|,而像Microsoft这样的供应商则提供+。是否有一个标准的JPA连接操作符,以便我可以创建一个类似 cola || colb || colc || cold 我尝试了+将openjpa与SQL Server一起使用,但它似乎是无效的JPQL。我无法在中找到

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

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

CONCAT(CONCAT(CONCAT(cola,colb),colc),cold)
像Oracle这样的供应商提供
|
,而像Microsoft这样的供应商则提供
+
。是否有一个标准的JPA连接操作符,以便我可以创建一个类似

cola || colb || colc || cold

我尝试了
+
将openjpa与SQL Server一起使用,但它似乎是无效的JPQL。我无法在中找到任何关于此类运算符的信息。

您可以对多个字符串使用JPA Concat函数

CONCAT(CONCAT(CONCAT(cola,colb),colc),cold)
例如:

CONCAT(cola, colb, colc, cold)

CONCAT
功能在JPA 2.0中进行了扩展,以允许传递规范第4.6.17.2.1节(字符串函数)中的2个以上参数:

CONCAT(string_primary, string_primary {, string_primary}* )

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

您也可以使用
|
作为串联运算符,请参阅

HQL除了支持 串联(CONCAT)函数。这不是由JPQL定义的,所以 便携式应用程序应避免使用it。串联运算符 取自SQL连接运算符-| |

例11.19。串联操作示例

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

检查过了。我得到一个openjpa的例外。我链接的引用()也只显示了两个参数。奇怪。按说明列出此函数。Openjpa 2.1.1应该是JPA 2.0。Openjpa 2应该支持这种语法,您能发布您收到的确切查询和异常吗?