2012-01-25 2 views
1

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

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, было бы также полезно!

спасибо!

+0

Никто ...? : (( – VORiAND

ответ

0

Необходимо было обновить до 3.6.9. Кажется, что эта версия обрабатывает 10k + элементов в списке параметров.

Смежные вопросы