我发现的另一件事是,Javers 似乎正在从我的连接池(通过 Spring DataSourceBuilder 创建)中获取所有可用的连接。我没有使用 Hibernate/JPA,只是通过 JdbcTemplate 直接使用 JDBC,主要是 MyBatis 用于我的实体查询。
我已经为 Javers 的 ConnectionProvider 添加了一个日志记录语句,并且在应用程序开始时,当它查询架构时,它会拉取 4 个连接来检查每个表,然后即使在提交之后也不会返回任何一个来自 PlatformTransactionManager。
我从https://stackoverflow.com/a/35147884/570291了解到,它应该参与与当前事务相同的连接。由于我没有使用 Hibernate/JPA,这是否意味着我需要实现从 MyBatis 到 Javers ConnectionProvider 的连接跟踪/等以返回相同的连接(如果有),然后处理关闭(返回池)交易结束时的连接?