当数据库中表的结构更改时,需要在项目中重新生成 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 映射器文件标记为不可合并。这将导致生成器覆盖文件,或根据覆盖设置的配置方式以新名称保存文件。
文章评论