0

次の2つのクラスがあります。

class Person{

 String name

  static hasMany = [
     items: Item
 ]
}

class Item{
 String name
}

複数の人が同じアイテムを持つこともできます。コレクションに特定のアイテムがあるすべての人物のリストを取得しようとしています。IE Person A と B の両方がリストにアイテム A を持っているので、両方を返します。残念ながら、それらは findAllByCollectionContains() ではなく、最も近いのは正確なセットを必要とする findAllByCollection() です。

私はexecuteQueryを試して、より多くの制御を提供しようとしましたが、まだ何も思いつきませんでした。

私が試したことの例:

 Person.executeQuery("select name from Person p where ? in p.items",[item])

助言がありますか?

4

1 に答える 1

1

アイテム コレクションに参加する必要があります。その後、簡単にクエリを実行できます。

 Person.executeQuery("select name from Person p join p.items as i where i = ?",[item])
于 2013-07-11T21:42:58.760 に答える