Как получить доступ к таблице отношений при выполнении executeQuery в Grails? - PullRequest
1 голос
/ 23 апреля 2010

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

В качестве примера у меня есть 3 таблицы: account, обязательства, 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 Ответ

2 голосов
/ 23 апреля 2010

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

...