JPA执行查询报错java.lang.StackOverflowError: null问题排查与解决

生产环境执行定时任务时报错 java.lang.StackOverflowError: null
JPA执行查询报错java.lang.StackOverflowError: null问题排查与解决_第1张图片
开发和测试环境运行正常,报错方法为Jpa类库里JoinProcessor.doFindAllNodes方法,该方法用于拼接查询参数,如(?,?,?,?),由于是通过迭代进行拼接,通过jpa提供的findByIdIn方法,传入的id集合,所以当拼接参数过长时,会发生栈溢出异常。

可以通过分段查询的方式和更改jvm启动参数来控制拼接长度。

你可能感兴趣的:(线上问题排查,java,hibernate,JPA,JoinProcessor,doFindAllNodes)