首页 > 数据库 >mybatis的mapper中的sql涉及嵌套且外部引用导致的问题:XML fragments parsed from previous mappers does not contain value

mybatis的mapper中的sql涉及嵌套且外部引用导致的问题:XML fragments parsed from previous mappers does not contain value

时间:2024-06-12 16:12:51浏览次数:16  
标签:XML mapper mappers xxx some 嵌套 sql parsed

假设xxx.xml中有类似下方的sql嵌套:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xxx">
  <!-- 片段1 -->
  <sql id="sql1">
    some sql
  </sql>

  <!-- 片段2 -->
  <sql id="sql2">
    some sql2
  </sql>

  <!-- 片段3 -->
  <sql id="sql3">
    <include refid="sql1" />
    <include refid="sql2" />
  </sql>
</mapper>

当你在yyy.xml中引入他的时候,可能会报错:

XML fragments parsed from previous mappers does not contain value for xxx

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yyy">
  <select id="searchList">
    some sql
    <include refid="sql3" />
  </select>
</mapper>

本人测试,把xxx.xml改为如下即可解决问题:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xxx">
  <!-- 片段1 -->
  <sql id="sql1">
    some sql
  </sql>

  <!-- 片段2 -->
  <sql id="sql2">
    some sql2
  </sql>

  <!-- 片段3 -->
  <sql id="sql3">
    <include refid="com.xxx.sql1" />
    <include refid="com.xxx.sql2" />
  </sql>
</mapper>

也就是在内部嵌套的时候,需要填写完整的引用id。
如果只是内部嵌套,那没问题。如果涉及到外部引用就会报错。

标签:XML,mapper,mappers,xxx,some,嵌套,sql,parsed
From: https://www.cnblogs.com/czbxg/p/18244116

相关文章

  • XML实体注入漏洞
    漏洞等级:高危漏洞类型:XML实体注入漏洞描述:XXE漏洞全称XMLExtemalEndyniecionlxm以外部实体注入漏洞,X在漏洞发生在应用程序经析XML输入时,没有禁止外部实体的加载,导致可加载恶意外部文件,造成文件读取、命令执行、内网端口扫描、攻击内网网站、发起d0s攻击等危害。xxe漏洞触发的......
  • Xml25
    一、概念ExtensibleMarkupLanguage可扩展标记语言可扩展:标签都是自定义的。<user><student>功能存储数据 1.配置文件 2.在网络中传输xml与html的区别 1.xml标签都是自定义的,html标签是预定义。 2.xm......
  • dark1130_theme.xml sourceinsight 主题
    <ThemeList> <Theme Name="dark1130" > <DisplayColors> <ItemName="DefaultText"Color="#e0e0e0"/> <ItemName="WindowBackground"Color="#001515"/> <ItemName......
  • mybatis-plus加载多个module的mapper踩坑记录
    背景 有一个多模块的项目,每个模块中都有自己的mapper.xml文件。但是在执行一次SQL查询中,mybatis却报出了下面的异常 排查过程第一步,先检查mapper扫描是否正确 先找到这个方法的位置 可以看到包名是com.pinming.security.responsibility.mapper 检查SpringBoot......
  • 爬虫 | xpath + lxml 库 解析爬取网页
    lxml库是用来解析XML和HTML网页内容的Xpath库则是用来查询数据(XPath表达式是一种在XML文档中查找信息的语言,它同样适用于HTML文档)简单示例:#先pipinstalllxmlimportrequestsfromlxmlimportetree#etree主要是用来解析和操作XML/HTML文档#步骤3:获取......
  • 推送代码报错:fatal: unable to access 'https://gitlab.com/xxx/xxx.git/': The reque
    错误还原#gitlab使用Bitbucket注册登录,执行gitpush命令,使用token验证报错如下dogle@DESKTOP-KI961IKMINGW64/d/workspaces/xxx(main)$gitpushremote:HTTPBasic:Accessdenied.Theprovidedpasswordortokenisincorrectoryouraccounthas2FAenabledan......
  • springboot使用ComponentScan和MapperScan
    今天讲springboot项目中的启动类换到了start包下,发现无法扫描并注册javabean. 原因:容器在启动时会由spring.classPathBeanDefinitionScanner和spring-mybaits.classPathMapperScanner两个类去执行doScan方法,如果没有使用@ComponentScan和MapperScan两个注解spring会使用Spring......
  • WebLogic XMLDecoder反序列化漏洞
    目录前言XMLDecoder概述XMLDecoder反序列化漏洞漏洞复现前言上篇复现了T3反序列化漏洞,XMLDecoder反序列化在WebLogic中也是一类影响很大的反序化漏洞。XMLDecoder概述XMLDecoder是JDK自带的以SAX方式解析xml的类,实现java对象和xml文件之间的转化。其中序列化过程是将java对象......
  • Spring家族框架——Spring3——IOC基于XML创建对象的方式
    ......
  • 从零开始的.NET项目(一)仓储模式与配置AutoMapper
    目标框架:.net6.0操作系统:macos编译器:Rider内容:创建第一个Controller,使用仓储(Respository)模式实现,并使用AutoMapper进行数据对象关系映射非常简单的实现,Automapper也只介绍了最基础也最常用的其他用法后续再补,目的就是稳准狠......