Grails: как я могу запросить отношение класса hasMany к пересекающемуся набору объектов? - PullRequest
0 голосов
/ 19 декабря 2010

У меня примерно следующее:

class Object_1 {
  static hasMany = [tags:Tag]
  Set tags;
  ...
}

Теперь у меня есть набор тегов и я хочу найти все экземпляры Object_1 с пересекающимися (! = Совпадающими) тегами. Я думал о чем-то вроде

Object_1.findAllByTagsInList(tags);

Но это не работает вообще - я получаю "вложенное исключение - org.hibernate.exception.SQLGrammarException: не удалось выполнить запрос". У меня такое чувство, что я упускаю что-то важное. Помощь высоко ценится.

Ответы [ 2 ]

0 голосов
/ 20 декабря 2010

Я действительно нашел элегантный способ решения проблемы.Я изменил отношение «многие ко многим», что позволяет просто перебирать список тегов и находить все соответствующие объекты.

... конечно, теперь мне нужно пару раз позаботиться об этом- но я рад, что это работает с несколькими местами.

0 голосов
/ 19 декабря 2010

«в списке» не является одним из операторов , распознаваемых в методах динамического поиска - это не сработает.

Вместо этого вам придется использовать HQL или построитель критериев для формулирования вашего запроса (и, возможно, поместить его в метод статического поиска).

...