Grails Many-To-Many - Проблемы динамического поиска

Я надеюсь, что вы можете помочь мне, ребята. Google, к сожалению, не помог мне, и мой поиск здесь в stackru также не помог:-(

У меня есть два DomainClasses HumanResource и Task с отношением многие ко многим.

Модель-Определения:

Задача:

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 с помощью mapping={}, но я также думаю, что это не решение, это не помогло, и я думаю, что индекс уже существует в поле id.

Итак, что я делал, а что не работает, так это теперь найду все человеческие ресурсы для выполнения поставленных задач! И задачи поступают из Служб, и они уже выбраны в модели Службы с помощью "static fetchMode = [tasks:"eager"]"!

Контроллер-код:

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

1 ответ

Решение

Этот тип запроса не поддерживается - вам нужно использовать HQL или критерий запроса в целом. Но этот конкретный легко, так как у вас есть двунаправленные отношения. Вы можете получить все HumanResource экземпляры для коллекции Tasks с этим:

def resources = service.getTasks().collect { it.humanResources }.flatten() as Set

Это должно быть Set с того же HumanResource Экземпляр может появляться несколько раз, поэтому вам нужно сжать список в уникальные экземпляры.

Другие вопросы по тегам