Как получить доступ к таблице отношений при выполнении executeQuery в Grails?

Действительно ли возможно получить доступ к таблице отношений при выполнении оператора HQL?

Как пример, у меня есть 3 таблицы: учетная запись, обязательство, account_commitment. Это было сгенерировано с помощью этих доменов:

class Account {
   static hasMany = [ commits : Commitment ]

   String name
} 

class Commitment {
   static hasMany = [ actors : Account ]

   String description
}

Мой заключительный и фактический SQL-запрос - что-то вроде этого:

SELECT 
    b.id,
    account_name,
    d.nid,
    d.title
FROM
    account_commitment a, // is this available in HQL?
    account b,
    commitment c,
    content_type_act d
where
    d.nid = 3332
    and a.account_id = b.id
    and a.act_id = c.id
    and c.act_id = d.nid

Я полагаю, что HQL только позволяет допустимые домены класса. Так как таблица отношений автоматически сгенерирована, действительно ли это возможно в HQL?

Спасибо.

1
задан firnnauriel 23 April 2010 в 15:44
поделиться

1 ответ

Нет, HQL работает только с отображенными классами. Если вы хотите запускать SQL-запросы, просто используйте groovy.sql.Sql. Но если вы хотите получить доступ только к промежуточной таблице, чтобы присоединиться к двум другим, в этом нет необходимости, поскольку HQL уже знает о взаимосвязях между таблицами.

2
ответ дан 3 September 2019 в 01:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: