У меня есть следующие два класс:Горма: Найти по содержанию коллекции
class Person{
String name
static hasMany = [
items: Item
]
}
class Item{
String name
}
Несколько Лиц также может иметь один и тот же элемент. Я пытаюсь получить список всех Лица, у которых есть определенный предмет в их коллекции. И.Е. Оба человека A и B имеют элемент A в своем списке, поэтому возвратите их оба. К сожалению, их нет findAllByCollectionContains(), ближайшим является findAllByCollection(), который требует точного набора.
Я пытался выполнить executeQuery, чтобы дать мне больше контроля и еще ничего не придумал.
Пример того, что я пробовал:
Person.executeQuery("select name from Person p where ? in p.items",[item])
Любые предложения?
Это прекрасно работает. но не могли бы вы объяснить немного больше, почему это работает? Благодаря! –
Когда вы присоединяетесь к 'p.items', теперь вы можете запрашивать на основе отдельного элемента вместо коллекции элементов. Взгляните на документы HQL: http://docs.jboss.org/hibernate/orm/3.3/reference/en-US/html/queryhql.html. –