平台小问题修改 2-getAll 查询

现象:

大部分订单可以一键发布成功,有一个订单始终发布不成功 (数据量比较大),开始一直以为是数据量的原因引起的,从订单到派工单,共 5~6w 的数据量左右,然后计划模块用的接口形式,吞掉了有些异常堆栈的信息,最后才定位到,params.getIds() 有值,但下一步就报错了,才想到很久以前项目上改过这个问题,但平台没有改,当 ids 集合为 1000 的整数倍时,这个查询会报错
image.png

验证:

拿物料数据测试,分别将 ids 集合修改为 1000 和 2000,当 2000 或倍数关系时报错
image.png

修改:

修改平台 HibernateBaseDao.getAll

建议:

我这边做的很多功能都涉及的数据量比较大,产品中在 BppCommonDao 提供了一些简化的操作方法,可以给使用带来便利。
1. 屏蔽了对 IN 条件超过 1000,需要自己拼接字符串的限制
2. 返回的结果可以是实体,属性集合,或者直接转换成 Map 对象的形式

List getEntityList(String hql, String paramName, Collection paramValues)

List<Object[]> getObjectList(String sql, String paramName, Collection paramValues)

Map<String, T> getEntityMap(String hql, String paramName, Collection paramValues)