web-dev-qa-db-ja.com

JPA concatオペレーター

文字列連結のためのJPA連結演算子はありますか?

JPA CONCAT関数があることは知っていますが、複数の文字列を連結するために使用するのは面倒です。

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

Oracleのようなベンダーは|| Microsoftのようなその他のサービス+。次のようなクエリを作成できるように、標準のJPA連結演算子はありますか

cola || colb || colc || cold

私は試した + openjpaをSQL Serverで使用していますが、JPQLは無効のようです。 Oracle reference にそのような演算子に関する情報が見つかりませんでした。

29
Udo Held

CONCAT関数はJPA 2.で拡張され、仕様のセクション4.6.17.2.1(文字列関数)から2つ以上のパラメーターを渡すことができます。

CONCAT(string_primary, string_primary {, string_primary}* )

JPA 1では、これは正確に2つのパラメーターに制限されていました。

46
Jörn Horstmann

複数の文字列に対してJPA Concat関数を使用できます。

例えば:

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

連結演算子として||を使用することもできます。 ドキュメント上 を参照してください

HQLは、連結(CONCAT)機能のサポートに加えて、連結演算子を定義します。これはJPQLによって定義されていないため、ポータブルアプリケーションでは使用を避ける必要があります。連結演算子は、SQL連結演算子-||から取得されます。

例11.19。連結操作の例

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