2

検索可能な特定のドメインを返す方法を知りたいですか? たとえば、ドメイン A と B があります。どちらのドメインも検索可能で、関係があります。A には多数の B があり、B は A に属しています。別のケースでは、A と B は多対多の関係にあります。

アイテムを検索するときは、常に A アイテムを返さなければなりません。私の場合、B で一致を見つけたとしましょう。各 B に対してすべての As を返す必要があります。他の方法でも同様に機能するはずです。

現在、検索クエリは検索可能なサービスです:

def searchResults = searchableService.search(params.q, params)

検索結果に関連するすべての A ドメインを取得する方法はありますか?

ありがとうございました。

4

1 に答える 1

2

両方のドメイン (A と B) を検索可能にしてからDomainObject component:true、検索可能なプロパティを追加します。

class A{
  String name

  static hasMany = [bclass: B]
  static searchable = {
     bclass component: true
  }
}

class B{
  String color

  static belongsTo= [aclass: A]
  static searchable = true
}

Bに、カラーフィールド値が「赤」の行がいくつかあるとします

A.search("red") 

colorフィールド値が「red」の子クラスBを持つA のすべてのインスタンスを返します。

于 2013-01-03T06:49:12.010 に答える