diff --git a/src/main/java/com/itfsw/mybatis/generator/plugins/IncrementsPlugin.java b/src/main/java/com/itfsw/mybatis/generator/plugins/IncrementsPlugin.java index 6997c7a..0534428 100644 --- a/src/main/java/com/itfsw/mybatis/generator/plugins/IncrementsPlugin.java +++ b/src/main/java/com/itfsw/mybatis/generator/plugins/IncrementsPlugin.java @@ -237,6 +237,20 @@ public class IncrementsPlugin extends BasePlugin implements IModelBuilderPluginH return true; } + /** + * Model builder set 方法生成 + * @param method + * @param topLevelClass + * @param builderClass + * @param introspectedColumn + * @param introspectedTable + * @return + */ + @Override + public boolean modelBuilderSetterMethodGenerated(Method method, TopLevelClass topLevelClass, InnerClass builderClass, IntrospectedColumn introspectedColumn, IntrospectedTable introspectedTable) { + return true; + } + // =============================================== IIncrementsPluginHook =================================================== /** diff --git a/src/main/java/com/itfsw/mybatis/generator/plugins/OptimisticLockerPlugin.java b/src/main/java/com/itfsw/mybatis/generator/plugins/OptimisticLockerPlugin.java index 20b5793..a19a95b 100644 --- a/src/main/java/com/itfsw/mybatis/generator/plugins/OptimisticLockerPlugin.java +++ b/src/main/java/com/itfsw/mybatis/generator/plugins/OptimisticLockerPlugin.java @@ -200,9 +200,18 @@ public class OptimisticLockerPlugin extends BasePlugin implements IModelBuilderP return super.modelSetterMethodGenerated(method, topLevelClass, introspectedColumn, introspectedTable, modelClassType); } + /** + * Model builder set 方法生成 + * @param method + * @param topLevelClass + * @param builderClass + * @param introspectedColumn + * @param introspectedTable + * @return + */ @Override - public boolean modelBuilderClassGenerated(TopLevelClass topLevelClass, InnerClass builderClass, List columns, IntrospectedTable introspectedTable) { - if (this.versionColumn != null && this.customizedNextVersion) { + public boolean modelBuilderSetterMethodGenerated(Method method, TopLevelClass topLevelClass, InnerClass builderClass, IntrospectedColumn introspectedColumn, IntrospectedTable introspectedTable) { + if (this.versionColumn != null && this.customizedNextVersion && introspectedColumn.getActualColumnName().equals(this.versionColumn.getActualColumnName())) { // nextVersion 方法 Method nextVersion = JavaElementGeneratorTools.generateMethod( METHOD_NEXT_VERSION, @@ -222,9 +231,23 @@ public class OptimisticLockerPlugin extends BasePlugin implements IModelBuilderP FormatTools.addMethodWithBestPosition(builderClass, nextVersion); } + return true; } + /** + * Model builder class 生成 + * @param topLevelClass + * @param builderClass + * @param columns + * @param introspectedTable + * @return + */ + @Override + public boolean modelBuilderClassGenerated(TopLevelClass topLevelClass, InnerClass builderClass, List columns, IntrospectedTable introspectedTable) { + return false; + } + // ========================================= sqlMap 生成 ============================================ @Override diff --git a/src/main/java/com/itfsw/mybatis/generator/plugins/utils/hook/HookAggregator.java b/src/main/java/com/itfsw/mybatis/generator/plugins/utils/hook/HookAggregator.java index 60c7fc0..00c7181 100644 --- a/src/main/java/com/itfsw/mybatis/generator/plugins/utils/hook/HookAggregator.java +++ b/src/main/java/com/itfsw/mybatis/generator/plugins/utils/hook/HookAggregator.java @@ -125,6 +125,16 @@ public class HookAggregator implements IUpsertPluginHook, IModelBuilderPluginHoo return true; } + @Override + public boolean modelBuilderSetterMethodGenerated(Method method, TopLevelClass topLevelClass, InnerClass builderClass, IntrospectedColumn introspectedColumn, IntrospectedTable introspectedTable) { + for (IModelBuilderPluginHook plugin : this.getPlugins(IModelBuilderPluginHook.class)) { + if (!plugin.modelBuilderSetterMethodGenerated(method, topLevelClass, builderClass, introspectedColumn, introspectedTable)) { + return false; + } + } + return true; + } + // ================================================= IUpsertPluginHook =============================================== @Override diff --git a/src/main/java/com/itfsw/mybatis/generator/plugins/utils/hook/IModelBuilderPluginHook.java b/src/main/java/com/itfsw/mybatis/generator/plugins/utils/hook/IModelBuilderPluginHook.java index 2473efd..ad62e62 100644 --- a/src/main/java/com/itfsw/mybatis/generator/plugins/utils/hook/IModelBuilderPluginHook.java +++ b/src/main/java/com/itfsw/mybatis/generator/plugins/utils/hook/IModelBuilderPluginHook.java @@ -19,6 +19,7 @@ package com.itfsw.mybatis.generator.plugins.utils.hook; import org.mybatis.generator.api.IntrospectedColumn; import org.mybatis.generator.api.IntrospectedTable; import org.mybatis.generator.api.dom.java.InnerClass; +import org.mybatis.generator.api.dom.java.Method; import org.mybatis.generator.api.dom.java.TopLevelClass; import java.util.List; @@ -41,4 +42,15 @@ public interface IModelBuilderPluginHook { * @return */ boolean modelBuilderClassGenerated(TopLevelClass topLevelClass, InnerClass builderClass, List columns, IntrospectedTable introspectedTable); + + /** + * Model builder set 方法生成 + * @param method + * @param topLevelClass + * @param builderClass + * @param introspectedColumn + * @param introspectedTable + * @return + */ + boolean modelBuilderSetterMethodGenerated(Method method, TopLevelClass topLevelClass, InnerClass builderClass, IntrospectedColumn introspectedColumn, IntrospectedTable introspectedTable); }