From a53e8e05fee7b232c5c8edf05b2d951097b26824 Mon Sep 17 00:00:00 2001 From: hewei Date: Mon, 7 May 2018 16:37:20 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B9=90=E8=A7=82=E9=94=81=E6=8F=92=E4=BB=B6?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E8=87=AA=E5=AE=9A=E4=B9=89nextVersion?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../generator/plugins/IncrementsPlugin.java | 14 ++++++++++ .../plugins/OptimisticLockerPlugin.java | 27 +++++++++++++++++-- .../plugins/utils/hook/HookAggregator.java | 10 +++++++ .../utils/hook/IModelBuilderPluginHook.java | 12 +++++++++ 4 files changed, 61 insertions(+), 2 deletions(-) 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); }