У меня есть запрос 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?