You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring升5同步MyBatis3.5.11遇嵌套懒加载属性重复问题求助

解决MyBatis 3.5.11升级后懒加载属性重复报错的思路

针对你遇到的ExecutorException,核心原因是MyBatis 3.5+版本强化了懒加载关联属性的唯一性校验,旧版本允许的隐性重复配置在新版本中触发了拦截。以下是具体排查和解决方向:

  • 检查resultMap的继承关系:如果当前报错的resultMap使用了extends属性继承其他映射,务必检查父级resultMap中是否已经定义过xyz这个关联属性。旧版本MyBatis不会校验继承链中的重复定义,新版本会严格拦截这种情况。

  • 梳理嵌套映射的属性链:排查当前resultMap中所有association/collection的嵌套配置,确认是否存在多条关联路径最终指向同一个最左属性xyz。比如某嵌套resultMap中也定义了同名属性,或者多个关联的property路径前缀重叠,都会触发该报错。

  • 排查自动映射冲突:MyBatis的自动映射功能(默认开启)可能会自动将查询列映射到同名实体属性,和你手动配置的association产生冲突。可以临时在全局配置中设置autoMappingBehavior=NONE测试,若报错消失,说明是自动映射导致的重复:

    configuration.setAutoMappingBehavior(AutoMappingBehavior.NONE);
    

    也可以仅在当前resultMap上关闭自动映射:

    <resultMap id="xxxMap" type="xxx" autoMapping="false">
      <!-- 手动配置所有映射 -->
    </resultMap>
    
  • 核对关联方法的返回类型:确认com.xyz.ApplicationMybatisDao.getbyName方法的返回对象类型,是否和association中指定的javaType匹配。如果返回对象本身也包含xyz属性,可能会在映射链中形成重复的属性路径,需要调整返回类型或关联配置。

  • 升级到最新补丁版本:3.5.11可能存在特定场景的校验bug,尝试升级到3.5.x系列的最新稳定版(如3.5.15),看是否是已知问题已被官方修复。

内容的提问来源于stack exchange,提问作者Inked

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 06:28:21