Grails: заполнить домен данными из перекрестного объединения: hql, критерии, SQL-запрос? - PullRequest
0 голосов
/ 28 февраля 2011

Я немного застрял в этом вопросе.Допустим, у меня есть класс домена:

class Activity {
    String activityID
    String activityDescription
    String activityType
}

и этот другой

class ActivityMap {
    String activityID1
    String activityDescription1
    String activityType1
    String activityID2
    String activityDescription2
    String activityType2
}

Я хочу заполнить класс домена ActivityMap результатом перекрестного соединения класса домена Activity с самим собойто есть с результатом эквивалентного SQL-запроса

SELECT a.activityID, a.activityDescription, a.activityType, a1.activityID, a1.activityDescription, a1.activityType
FROM Activity AS a, Activity AS a1
ORDER BY a.activityID, a1.activityID;

Я не уверен, какой самый эффективный способ добиться этого: использование критериев, HQL или встроенного SQL-запроса, поскольку результирующий набор данных может быть довольнобольшой (300-50+ вхождений активности, ожидается 250 000 строк результатов)?

Любые предложения / советы, пример?

Заранее спасибо, Патрик

1 Ответ

0 голосов
/ 28 февраля 2011

У Hibernate есть проблемы с запросами, которые возвращают такие большие результаты, даже если есть 10k + строк результата. Итак, 250 тысяч строк съедает всю вашу память и процессор.

Я рекомендую попробовать с собственным SQL-запросом, кроме того, вы не ожидаете реальных результатов, только INSERT ... SELECT

...