MyBatis generator 重新生成 Mapper.xml 重复问题

当数据库中表的结构更改时,需要在项目中重新生成 Mapper,想要用新的 Entity、Mapper.java、Mapper.xml 都覆盖掉,这时会在插件里面配置以下配置:

<configuration>
    <!--配置文件的路径-->
    <configurationFile>src/main/resources/lib/generatorConfig.xml</configurationFile>
    <!-- 覆盖 -->
    <overwrite>true</overwrite>
</configuration>

这个 overwrite 感觉是可以覆盖掉原来的旧文件,其实不然,点击去可以看到说明:

是否覆盖掉指定的 mojo 的 Java 文件。默认为不覆盖。请注意,XML 文件总是被合并的(不覆盖)。

这里解释的已经明白了,就算设置成了 true,也仅仅只是覆盖掉 Java 文件,比如 Entity、Mapper.java,对 Mapper.xml 是无效的。这时就需要另一个插件了:

<context>

  ......

  <!--覆盖生成XML文件-->
  <plugin type="org.mybatis.generator.plugins.UnmergeableXmlMappersPlugin" />

  ......

</context>

此插件将生成的 XML 映射器文件标记为不可合并。这将导致生成器覆盖文件,或根据覆盖设置的配置方式以新名称保存文件。

发表评论

电子邮件地址不会被公开。 必填项已用*标注