日期:2014-05-17  浏览次数:20617 次

有解决过hibernate in查询报栈溢出的大神么?
  项目使用的是ssh框架,同时hibernate版本是3.2.5 ga,查过各种资料都说是版本太低导致StackOverflowError错误,但是该错误在3.2.x版本后就已经解决了,为何我这里还是会报该问题的错误。
  有遇到过的大神么
hibernate 溢出 in查询

------解决方案--------------------
不一定是版本问题,StackOverflowError也可能是数据量大导致的,我save的时候遇到过一次。
------解决方案--------------------
用jdbc就好了
------解决方案--------------------
引用:
Quote: 引用:

不一定是版本问题,StackOverflowError也可能是数据量大导致的,我save的时候遇到过一次。

我这里就是每当id这个参数list长度超过9000以上时就会报这个错误。

框架并没有限制in的参数数量,但是数据库是有限制的,当你in后面的参数非常多(数以千计)的时候,数据库会耗尽资源,无法生成查询。你in里面这么多参数你可以用子查询来优化啊。
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

不一定是版本问题,StackOverflowError也可能是数据量大导致的,我save的时候遇到过一次。

我这里就是每当id这个参数list长度超过9000以上时就会报这个错误。

框架并没有限制in的参数数量,但是数据库是有限制的,当你in后面的参数非常多(数以千计)的时候,数据库会耗尽资源,无法生成查询。你in里面这么多参数你可以用子查询来优化啊。

唉 主要因为一些原因 导致 子查询速度比较慢。。

子查询速度慢就应该想办法去优化,子查询速度较慢的情况下不要使用in用exists替代