美文网首页
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