Как выбрать столбец hasMany в executeQuery () - PullRequest
0 голосов
/ 09 февраля 2019

У меня есть запрос HQL, который я должен изменить, чтобы получить переменную hasMany, определенную для класса домена Grails.

Вот упрощение того, что я пытаюсь сделать:

Скажем, мыиметь два класса доменов, A и B:

Class A {
    String attribute1
    int attribute2
    ...
    ...
    ...
    static hasMany = [someHasManyAttribute: B]   //Has many to class B
}

Затем, скажем, я запускаю это

A.executeQuery("select a from A a")

Это возвращает объект, содержащий все атрибуты в классе A, который также содержит наборsomeHasManyAttribute, что я и хочу.

Однако все мои попытки выбрать только someHasManyAttribute потерпели неудачу.Мне не нужен объект, все атрибуты А, мне нужно только несколько избранных.Это проблема, потому что я также вызываю конструктор в операторе select, поэтому мне нужно получить точные атрибуты.

Я пробовал несколько вещей, один пример:

A.executeQuery("select whatIWant, a.attribute1 from A a inner join a.someHasManyAttribute whatIWant")

Это дает мне неверный идентификатор ошибки.Другой пример:

A.executeQuery("select a.someHasManyAttribute from A a")

В этом случае я получаю пропущенное выражение, потому что hibernate, похоже, генерирует SQL для этого атрибута, который выглядит примерно как ". As col"

Какой правильный способ получитьобъект, возвращенный из Hibernate / Grails в HQL, который содержит атрибут hasMany?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...