2010-12-21 5 views
2

2つのフィールド連結(value = field1 + field2)と一致し、その条件に一致する結果オブジェクトを返さなければならない値があります。私は何とかクライテリアを介してそれを行うことができますか、これを解決するためにクエリを使用する必要がありますか?Hibernateは2つの連結フィールドと一致する値でレコードを取得します

ありがとうございます。

+0

「MyObj o(o.field1 + o.field2)= value」から試しましたか? – hvgotcodes

+0

はい、HSQLとクエリを使用して動作しますが、Criteriaオブジェクトを使用してそれを行う可能性があるかどうかを知りたがっています... – artjomka

答えて

4

Hibernateはこの機能を実装していません。 これを行うにはいくつかの方法があります。

データベース依存のSQLRestrictionを使用している人がいます。 もう1つは、DBにも依存する連結式のフィールドを作成することです。

私はHibernateのための新しい基準を作成することによって問題を解決しました。 詳細についてはこちらをご覧ください。 http://whaticode.com/2013/02/01/hibernate-criteria-concatenate-fields-in-like-and-ilike-operators/

私はそれが役に立ちそうです。

1

これは非常にエレガントではありませんが、それは動作します:

result.add(Restrictions.ilike( "DNI || this.letter"、 "%" + dniWithLetter + "%"));

+1

結果はCriteria、obviusy – alejandrosv

+0

です。 –

関連する問題