文字列連結のためのJPA連結演算子はありますか?
JPA CONCAT
関数があることは知っていますが、複数の文字列を連結するために使用するのは面倒です。
CONCAT(CONCAT(CONCAT(cola,colb),colc),cold)
Oracleのようなベンダーは||
Microsoftのようなその他のサービス+
。次のようなクエリを作成できるように、標準のJPA連結演算子はありますか
cola || colb || colc || cold
私は試した +
openjpaをSQL Serverで使用していますが、JPQLは無効のようです。 Oracle reference にそのような演算子に関する情報が見つかりませんでした。
CONCAT
関数はJPA 2.で拡張され、仕様のセクション4.6.17.2.1(文字列関数)から2つ以上のパラメーターを渡すことができます。
CONCAT(string_primary, string_primary {, string_primary}* )
JPA 1では、これは正確に2つのパラメーターに制限されていました。
複数の文字列に対してJPA Concat関数を使用できます。
例えば:
CONCAT(cola, colb, colc, cold)
連結演算子として||
を使用することもできます。 ドキュメント上 を参照してください
HQLは、連結(CONCAT)機能のサポートに加えて、連結演算子を定義します。これはJPQLによって定義されていないため、ポータブルアプリケーションでは使用を避ける必要があります。連結演算子は、SQL連結演算子-||から取得されます。
例11.19。連結操作の例
select 'Mr. ' || c.name.first || ' ' || c.name.last from Customer c where c.gender = Gender.MALE