这个大概是Mybatis generator一直存在的bug。重新写了一个插件,用来解决这个问题:
import org.mybatis.generator.api.GeneratedXmlFile;
import org.mybatis.generator.api.IntrospectedTable;
import org.mybatis.generator.api.PluginAdapter;
import java.lang.reflect.Field;
import java.util.List;
/**
* 修正Mybatis每次重新generator,mapper.xml文件都不断追加的问题而用的插件
* Created by Nemo on 2017/7/3.
*/
public class OverIsMergeablePlugin extends PluginAdapter {
@Override
public boolean validate(List<String> warnings) {
return true;
}
@Override
public boolean sqlMapGenerated(GeneratedXmlFile sqlMap, IntrospectedTable introspectedTable) {
try {
Field field = sqlMap.getClass().getDeclaredField("isMergeable");
field.setAccessible(true);
field.setBoolean(sqlMap, false);
} catch (Exception e) {
e.printStackTrace();
}
return true;
}
}
然后在generator.xml文件中添加插件引用,这个问题即可得到解决。