当前位置: 代码迷 >> Java Web开发 >> 有解决过hibernate in查询报栈溢出的大神么?该如何处理
  详细解决方案

有解决过hibernate in查询报栈溢出的大神么?该如何处理

热度:6369   发布时间:2016-04-11 00:09:54.0
有解决过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替代
  相关解决方案