背景:
在springboot 应用中,原有mysql hikari 数据源 需要同步pg数据库数据 , 因此采用hutooldb 同步
在使用dbUtil 直接查询分页后
DbUtil.newSession(ds).pageForEntityList(Entity.create(“xxx”).set(“update_time”, ">= " + dateFormat), page, size);
过一段时间就发现连接超时 ,然后排查各种设置 ,
最后在hikari 中设置 连接泄露监听 发现 全部连接未关闭导致连接泄露
查看源码发现 pageForEntityList 中的回调 关闭连接 session 中 是空实现
/**
* Session中不关闭连接
*
* @param conn {@link Connection}
*/
@Override
public void closeConnection(Connection conn) {
// Session中不关闭连接
}
解决办法:
如果使用session 应该手动 关闭掉 调用session 的close 方法
希望在文档中说明这点 避免后人踩坑