hibernate JpaQueryBuilder栈溢出StackOverflowError问题

hibernate JpaQueryBuilder 使用 IN 查询栈溢出StackOverflowError问题

List<Long> ids = xxx; // ids里面包含有超过3000个元素
JpaQueryBuilder builder = new JpaQueryBuilder();
builder.in("ID", ids);
  • hibernate会在内部代码对ids用StringBuffer类进行拼装,拼装过程会递归调用某个方法,导致栈溢出StackOverflowError

  • 解决方式是不通过hibernate拼装,使用流处理拼装

ids.stream().map(v -> String.valueOf(v)).collect(Collectors.joining(","));
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。