Надеюсь, вы можете помочь мне, ребята. Google, к сожалению, не помогает мне, и мой поиск здесь StackOverflow не так :-(Grails Many-to-Many - проблемы динамического искателя
У меня есть два DomainClasses HumanResource и задач с много-к-многим.
Модель-Определения:
задач:
class Tasks {
String name
static belongsTo = [HumanResource]
static hasMany = [humanResources: HumanResource]
//also tried but didn't help -> static fetchMode = [humanResources:"eager"]
}
HumanResource:
class HumanResource {
String name
static hasMany = [tasks: Tasks]
}
Я также попытался добавить индекс на Ид поле с отображением = {}, но я также думаю, что это не решение, это не помогло, и я думаю, что уже есть индекс id-поле.
Итак, что я сделал и не работает, теперь нужно найти все человеческие ресурсы для данных задач! И задачи поступают из Сервисов, и они уже получены в модели обслуживания с помощью «static fetchMode = [tasks:« hager »]»!
Контроллер-код:
def listHumanResourcesFromTasks = {
def list = HumanResource.findAllByTasks(service.getTasks())
//and I tried also with an own HashMap but didn't work as well
}
Я всегда получаю ошибку "org.springframework.dao.InvalidDataAccessResourceUsageException" с SQL-GrammarException. Но я действительно не знаю, почему. Объекты «service.getTasks()» полностью заполнены (как я писал с помощью fetchMode = [tasks: «eager»]) ...
Было бы здорово, если бы кто-нибудь мог дать мне выигрышный намек.
Большое спасибо за ваше время.
С наилучшими пожеланиями,
Marco
Привет, Берт, спасибо, что работает! Но у меня есть вопрос продолжения. Если я использую ваше решение, модель «HumanResource» заполняется полностью, и будет выполнено множество ненужных спящих. Как я могу «исключить» это с помощью вашего решения или как я могу делегировать «что собирать» с вашим решением? Я попробовал ** def resources = service.getTasks(). Collect {humanResources.id; humanResources.firstName; humanResources.lastName} .flatten() as Set **, но с этим я получаю (в случае 5 ресурсов) 15 результатов неупорядоченных и не связанных друг с другом :-(Можете ли вы дать мне подсказку? Еще раз спасибо! – grailsInvas0r