Bug记录 -- MyBaits 报错 -- Cannot get Configuration as configuration factory was not set

本文最后更新于:4 个月前

错误复现

  • 第一次查询数据库,没问题

    日志:

  • 第二次则503

    日志:

出错原因:

加入 <cache/> 标签并在 MyBatis 配置文件中开启了二级缓存时,如果这个 mapper 有用到 lazyLoading 相关的技术,比如 resultMap 里面的 fetchType = lazy 就会出现这样的错误

解决办法

Apparently, the issue is on the lazyLoading functionality code where some race condition trigger the issue. There appears to be a multi-thread related bug in the lazyFunctionality of MyBatis, so deactivating it works as a workaround.
显然,问题出在延迟加载功能代码上,其中某些竞争条件触发了该问题。MyBatis 的懒加载功能中似乎存在与多线程相关的错误,因此将其停用可以作为一种解决方法。

  1. 不使用 cache 标签

  2. 不使用 lazyLoading 相关配置