是否有用于字符串连接的JPA concat运算符?
我知道有一个JPA CONCAT
函数,但它用于连接多个字符串很难看。
CONCAT(CONCAT(CONCAT(cola,colb),colc),cold)
Oracle等供应商提供||
其他类似Microsoft提供的+
。是否有标准的JPA连接运算符,以便我可以创建像
cola || colb || colc || cold
我使用openjpa和SQL Server尝试+
,但它似乎是无效的JPQL。我在oracle reference中找不到关于此类运算符的任何内容。
答案 0 :(得分:43)
在 JPA 2.0 中扩展了CONCAT
函数,以允许传递超过2个参数,来自规范的4.6.17.2.1节(字符串函数):
CONCAT(string_primary, string_primary {, string_primary}* )
在JPA 1中,这仅限于两个参数。
答案 1 :(得分:10)
您可以将JPA Concat功能用于多个字符串。
例如:
CONCAT(cola, colb, colc, cold)
答案 2 :(得分:7)
您也可以使用||
作为连接运算符,请参阅on the documentation
HQL除了支持连接之外还定义了连接运算符 连接(CONCAT)功能。这不是由JPQL定义的,所以 便携式应用程序应避免使用它。连接运算符 取自SQL连接运算符 - ||。
例11.19。连接操作示例
select 'Mr. ' || c.name.first || ' ' || c.name.last from Customer c where c.gender = Gender.MALE