0

grails アプリケーションに検索ページがあります。このページでは、多数のプロパティに基づいてクエリを動的に作成できる必要があります。

例えば:

  • 「bob.smith@% のようなメールアドレスを持つユーザーを検索」
  • 「メールアドレスが「john.smith@gmail.com」に等しいユーザーを検索
  • 「グループ x のメンバーであるユーザーを見つける」
  • 「ID 42 のユーザーを検索」
  • ""Jason P%" のような名前のユーザーを検索

これが Java アプリケーションの場合、休止状態基準 API を使用します。基準 API の 1 つの問題は、任意の結合が不可能になることです。

このようなクエリを動的に構築する方法はありますか? GORM の基準 API を動的に変更できる場合は、機能するか、まったく別のアプローチを使用できます。

4

1 に答える 1

2

あなたからの同様の質問が、数か月前に @dmahapatro によって回答されたようです。現在のシナリオは次のようになります。

def user = User.createCriteria().list{
      if(params.email != null){
          or{
             eq('email', params.email)
             iLike('email', "%${params.email}%")
          }
      } else if(params.id != null){
          idEq(params.id)
      } else if(params.name != null){
          eq('name', params.name)
      } else if(params.memberOf != null){ //This can be optimized
         groups{
            eq('name', params.memberOf)
         }
      }
   }

これはあなたが探していたものですか?

于 2013-09-12T17:38:26.217 に答える