Выбор класса HQL в DetachedCriteria (переполнение стека при слишком большом ParameterList) - PullRequest
1 голос
/ 25 января 2012

У меня серьезная проблема: переменная ParameterList в моем HQL имеет 10k + элементов, поэтому Hibernate не может с ним работать (stackoverflow), сейчас я пытаюсь преобразовать его в запрос DetachedCriteria, но это выглядит так:

final StringBuffer hql = new StringBuffer(
        "SELECT new db.XXXTable(c.abc1, c.abc2, c.abc3, a.def1, a.def2, a.def3, a.def4, a.def5, a.def6, a.def7, a.def8) FROM def AS a, abc AS c WHERE a.def7 IN (:ids) AND a.def7 =c.abc1 AND a.def9 = TRUE ");

session = getSession();
final Query query = session.createQuery(hql.toString());

query.setParameterList("ids", importIdList);
result = query.list();

db.XXXTable имеет свой собственный конструктор.

Я видел, что, возможно, запрос DetachedCriteria справится с этим, но я не могу понять, как его использовать (из двух таблиц в уникальный выбор класса ...)

Но если кто-то знает, как решить ошибку stackoverflow, это также будет полезно!

Большое спасибо!

1 Ответ

0 голосов
/ 01 февраля 2012

Пришлось обновить до 3.6.9. Эта версия, кажется, обрабатывает 10k + элементов в parameterList.

...