美文网首页
MyBatis mapper.xml 文件 include标签的

MyBatis mapper.xml 文件 include标签的

作者: 何家小富富 | 来源:发表于2023-07-26 13:46 被阅读0次

mybatis版本

mybatis 3.5.7

疑问

此处我想columns sql片段的 alias 参数,可以传递,也可以不传递,应该怎么改?

 <sql id="columns">
        ....
        ${alias}.`delete_flag`,
        ${alias}.`version`,
        ${alias}.`create`,
        ${alias}.`create_time`,
        ${alias}.`modify`,
        ${alias}.`modify_time`
    </sql>

    <select>
        ......
        <include refid="columns">
            <property name="alias" value="t1"/>
        </include>
        ......
    </select >

错误的解决方案

<sql id="columns">
  ...
  <if test="alias!=null">${alias}.</if>`delete_flag`,
  ...
</sql>

注意:test处会抛出异常 alias not found,

奇葩的解决方案

<sql id="columns">
  ...
  <if test="'${alias}'!=null">${alias}.</if>`delete_flag`,
<!-- 或者 -->
  <if test="${alias !=null}">${alias}.</if>`delete_flag`,
  ...
</sql>

这个解决方案是奇葩的,但也是可行的。
伟大的网友,请问还有没有其它的解决方案?

相关文章

网友评论

      本文标题:MyBatis mapper.xml 文件 include标签的

      本文链接:https://www.haomeiwen.com/subject/feekpdtx.html