0

Hibernate を使用して Web アプリをビルドしています。1 つのページに、5 つの入力がある送信ボタンが 1 つあります。

  • フィールド1
  • フィールド2
  • フィールド3
  • フィールド4
  • フィールド5

すべての入力が null の場合、単純なクエリを作成します

Query query = session.createQuery("from MyTable");

ただし、null 以外の入力が少なくとも 1 つある場合は、検索クエリを作成する必要があります。たとえば、field1 は null ではありません。

Query query = session.createQuery("from MyTable where field1= :field1");
query.setParameter("field1", field1);

しかし、すべての入力をチェックする必要があり、このことに基づいてクエリ文字列を作成する必要があります。

検索クエリを作成する最もスマートで簡単な方法は何ですか?

4

1 に答える 1

2

代わりに Criteria-Query を使用できます。

Criteria criteria = hibernateSession.createCriteria(YourClass.class);

次に、すべてのフィールドに基づいてクエリに基準を追加します。

if(fieldValue1 != null) {
    criteria.add(Restrictions.eq("FieldProperty1", fieldValue1))
}

if(fieldValue2 != null) {
    criteria.add(Restrictions.eq("FieldProperty2", fieldValue2))
}

...

もちろん、JPA-API の代わりにネイティブの休止状態 API を使用する場合にのみ機能します。

于 2010-04-26T09:13:52.333 に答える