Grails: запросы по ассоциации «многие ко многим»
-
20-09-2019 - |
Вопрос
У меня отношения многие-ко-многим.
class Post {
String title
static hasMany = [tags:Tag]
}
class Tag {
static hasMany = [posts:Post]
}
Я хотел бы получить список сообщений для тега, который имеет другие критерии (например, порядок сортировки, частичное совпадение заголовков и т. д.).Я иметь использовать критерии Грааля для достижения этой цели?Или есть какой-то способ сделать что-то вроде этого:
Post.findAllByTitleLikeAndTagsContains("partial title", aTag)
Решение
Я не думаю, что динамические средства поиска позволят вам попасть в ассоциации «один-ко-многим» или «многие-ко-многим» — вам нужно выполнить критерии или пойти по маршруту запроса HQL.Вы можете запрашивать только связь один к одному, а не один ко многим.(см. раздел 5.4.1 Динамические средства поиска)
Другие советы
Вы можете использовать withCriteria, например:
Post.withCriteria{
tags {
eq 'id',aTag.id
}
}
Не связан с StackOverflow