我有一個整數數組列表中有8000個項目。setParameterList與巨大的數據列表
而我使用setParameterList
方法在hql中設置該數組列表。
只是一個例子查詢
return (Integer) sessionFactory.getCurrentSession().createQuery("update data where Id in (:list)").setParameterList("list", arrayList).executeUpdate();
但在執行我得到這個錯誤的查詢後。
java.lang.StackOverflowError
at org.hibernate.hql.ast.QueryTranslatorImpl$JavaConstantConverter.visit(QueryTranslatorImpl.java:585)
at org.hibernate.hql.ast.util.NodeTraverser.visitDepthFirst(NodeTraverser.java:64)
at org.hibernate.hql.ast.util.NodeTraverser.visitDepthFirst(NodeTraverser.java:65)
at org.hibernate.hql.ast.util.NodeTraverser.visitDepthFirst(NodeTraverser.java:66)
at org.hibernate.hql.ast.util.NodeTraverser.visitDepthFirst(NodeTraverser.java:66)
at org.hibernate.hql.ast.util.NodeTraverser.visitDepthFirst(NodeTraverser.java:66)
at org.hibernate.hql.ast.util.NodeTraverser.visitDepthFirst(NodeTraverser.java:66)
at org.hibernate.hql.ast.util.NodeTraverser.visitDepthFirst(NodeTraverser.java:66)
at org.hibernate.hql.ast.util.NodeTraverser.visitDepthFirst(NodeTraverser.java:66)
有沒有什麼辦法可以在hibernate中解決這個問題。可能這將與純sql查詢一起工作。但我只想知道HQL中是否有其他方式。
哪個版本的Hibernate做到了這一點? 版本3.2中存在一個錯誤,可能與此問題有關:https://hibernate.atlassian.net/browse/HHH-2166 – hendrik 2015-07-02 15:56:38