【异常】MyBatis-Plus提示报错XML fragments parsed from previous mappers does not contain value for xxx

一、报错内容

java.lang.IllegalArgumentException: 
XML fragments parsed from previous mappers does not contain value 
for  com.xxx.mapper.ProjectMapper.Base_Column_List

报错的全文

java.lang.IllegalArgumentException: XML fragments parsed from previous mappers does not contain value for com.xxx.mapper.ProjectMapper.Base_Column_List
	at com.baomidou.mybatisplus.core.MybatisConfiguration$StrictMap.get(MybatisConfiguration.java:445)
	at org.apache.ibatis.builder.xml.XMLIncludeTransformer.findSqlFragment(XMLIncludeTransformer.java:98)
	at org.apache.ibatis.builder.xml.XMLIncludeTransformer.applyIncludes(XMLIncludeTransformer.java:63)
	at org.apache.ibatis.builder.xml.XMLIncludeTransformer.applyIncludes(XMLIncludeTransformer.java:85)
	at org.apache.ibatis.builder.xml.XMLIncludeTransformer.applyIncludes(XMLIncludeTransformer.java:50)
	at org.apache.ibatis.builder.xml.XMLStatementBuilder.parseStatementNode(XMLStatementBuilder.java:73)
	at org.apache.ibatis.session.Configuration.lambda$buildAllStatements$2(Configuration.java:905)
	at java.util.Collection.removeIf(Collection.java:414)

二、报错说明

出现上面的报错是因为MyBatis-Plus中的<include>语句的 refid写错导致的。

如下,定义了refid为Base_Column_List

 <select id="findByProjectCode" resultType="xxx.entity.ProjectEntity"
            parameterType="java.lang.String">
        SELECT
        <include refid="Base_Column_List"/>
        FROM t_project
        <where>
            project_code = #{projectCode};
        </where>
</select>

但是上下文中,并没有找到refid,而是找到了projectEntitySql如下。

 <sql id="projectEntitySql">
        t_project.`project_id`,
        t_project.`project_name`,
        t_project.`project_code`,
        t_project.`log_upload_flag`,
        t_project.`log_upload_config`,
        t_project.`repeat_upload_max_times`,
        t_project.`version`,
        t_project.`create_time`,
        t_project.`update_time`,
        t_project.`create_user`,
        t_project.`modify_user`
</sql>

三、报错解决

<include refid="Base_Column_List"/>改成<include refid="projectEntitySql"/>即可。

 <select id="findByProjectCode" resultType="xxx.entity.ProjectEntity"
            parameterType="java.lang.String">
        SELECT
        <include refid="projectEntitySql"/>
        FROM t_project
        <where>
            project_code = #{projectCode};
        </where>
    </select>

猜你喜欢

转载自blog.csdn.net/wstever/article/details/130236421