生产环境执行定时任务时报错 java.lang.StackOverflowError: null
开发和测试环境运行正常,报错方法为Jpa类库里JoinProcessor.doFindAllNodes方法,该方法用于拼接查询参数,如(?,?,?,?),由于是通过迭代进行拼接,通过jpa提供的findByIdIn方法,传入的id集合,所以当拼接参数过长时,会发生栈溢出异常。
可以通过分段查询的方式和更改jvm启动参数来控制拼接长度。
生产环境执行定时任务时报错 java.lang.StackOverflowError: null
开发和测试环境运行正常,报错方法为Jpa类库里JoinProcessor.doFindAllNodes方法,该方法用于拼接查询参数,如(?,?,?,?),由于是通过迭代进行拼接,通过jpa提供的findByIdIn方法,传入的id集合,所以当拼接参数过长时,会发生栈溢出异常。
可以通过分段查询的方式和更改jvm启动参数来控制拼接长度。