Действительно ли возможно получить доступ к таблице отношений при выполнении оператора 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?
Спасибо.
Нет, HQL работает только с отображенными классами. Если вы хотите запускать SQL-запросы, просто используйте groovy.sql.Sql. Но если вы хотите получить доступ только к промежуточной таблице, чтобы присоединиться к двум другим, в этом нет необходимости, поскольку HQL уже знает о взаимосвязях между таблицами.