From 276d0e2004e2b5926dfa09be06d2dc79a7d9bef1 Mon Sep 17 00:00:00 2001 From: hewei Date: Wed, 7 Nov 2018 17:08:42 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96IncrementsPlugin,=E8=BE=85?= =?UTF-8?q?=E5=8A=A9=E5=AD=97=E6=AE=B5=E4=B8=8D=E8=A6=81=E4=BD=BF=E7=94=A8?= =?UTF-8?q?get&set=E6=96=B9=E6=B3=95=EF=BC=8C=E4=BC=9A=E5=AF=BC=E8=87=B4JS?= =?UTF-8?q?ON=E6=A0=BC=E5=BC=8F=E5=8C=96=E7=9A=84=E6=97=B6=E5=80=99?= =?UTF-8?q?=E4=BC=9A=E6=8A=8A=E6=94=B9=E5=AD=97=E6=AE=B5=E8=BE=93=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../generator/plugins/IncrementsPlugin.java | 31 ++++++++++++------- 1 file changed, 19 insertions(+), 12 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 9e391b3..6704898 100644 --- a/src/main/java/com/itfsw/mybatis/generator/plugins/IncrementsPlugin.java +++ b/src/main/java/com/itfsw/mybatis/generator/plugins/IncrementsPlugin.java @@ -46,6 +46,7 @@ import java.util.List; public class IncrementsPlugin extends BasePlugin implements IModelBuilderPluginHook, IIncrementsPluginHook, ILombokPluginHook { public static final String PRO_INCREMENTS_COLUMNS = "incrementsColumns"; // incrementsColumns property public static final String FIELD_INC_MAP = "incrementsColumnsInfoMap"; // 为了防止和用户数据库字段冲突,特殊命名 + public static final String METHOD_GET_INC_MAP = "incrementsColumnsInfoMap"; // 获取inc map public static final String METHOD_INC_CHECK = "hasIncsForColumn"; // inc 检查方法名称 private List incColumns; // 表启用增量操作的字段 @@ -316,7 +317,7 @@ public class IncrementsPlugin extends BasePlugin implements IModelBuilderPluginH builderCls.addField(fIncrements); // Builder 构造函数增加 自增Map - constructor.addBodyLine("this." + IncrementsPlugin.FIELD_INC_MAP + " = builder." + IncrementsPlugin.FIELD_INC_MAP + ";"); + constructor.addBodyLine("this." + IncrementsPlugin.FIELD_INC_MAP + ".putAll(builder." + IncrementsPlugin.FIELD_INC_MAP + ");"); } FullyQualifiedJavaType builderType2 = new FullyQualifiedJavaType(topLevelClass.getType().getShortName() + "." + topLevelClass.getType().getShortName() + "Builder"); @@ -473,8 +474,8 @@ public class IncrementsPlugin extends BasePlugin implements IModelBuilderPluginH )); TextElement spec = new TextElement( MyBatis3FormattingUtilities.getEscapedColumnName(introspectedColumn) - + " ${" + (prefix != null ? prefix : "") - + IncrementsPlugin.FIELD_INC_MAP + "." + MyBatis3FormattingUtilities.escapeStringForMyBatis3(introspectedColumn.getActualColumnName()) + ".value} " + + " ${" + (prefix != null ? prefix : "_parameter.") + + IncrementsPlugin.METHOD_GET_INC_MAP + "()." + MyBatis3FormattingUtilities.escapeStringForMyBatis3(introspectedColumn.getActualColumnName()) + ".value} " + MyBatis3FormattingUtilities.getParameterClause(introspectedColumn, prefix)); when.addElement(spec); choose.addElement(when); @@ -519,7 +520,7 @@ public class IncrementsPlugin extends BasePlugin implements IModelBuilderPluginH sb.append("column.value"); when.addAttribute(new Attribute("test", sb.toString())); - when.addElement(new TextElement("${column.escapedColumnName} = ${column.escapedColumnName} ${record." + FIELD_INC_MAP + "." + when.addElement(new TextElement("${column.escapedColumnName} = ${column.escapedColumnName} ${record." + METHOD_GET_INC_MAP + "()." + introspectedColumn.getActualColumnName() + ".value} #{record.${column.javaProperty},jdbcType=${column.jdbcType}}")); choose.addElement(when); @@ -561,18 +562,24 @@ public class IncrementsPlugin extends BasePlugin implements IModelBuilderPluginH new FullyQualifiedJavaType("Map"), "new HashMap()" ); + fIncrements.setFinal(true); commentGenerator.addFieldComment(fIncrements, introspectedTable); topLevelClass.addField(fIncrements); topLevelClass.addImportedType("java.util.Map"); topLevelClass.addImportedType("java.util.HashMap"); - // getter&setter - if (!withLombok) { - Method mGetter = JavaElementGeneratorTools.generateGetterMethod(fIncrements); - commentGenerator.addGetterComment(mGetter, introspectedTable, null); - FormatTools.addMethodWithBestPosition(topLevelClass, mGetter); - Method mSetter = JavaElementGeneratorTools.generateSetterMethod(fIncrements); - commentGenerator.addSetterComment(mSetter, introspectedTable, null); - FormatTools.addMethodWithBestPosition(topLevelClass, mSetter); + // inc map 获取方法 + if (withLombok) { + topLevelClass.addImportedType(LombokPlugin.EnumLombokAnnotations.ACCESSORS_FLUENT_TRUE.getClazz()); + fIncrements.addAnnotation(LombokPlugin.EnumLombokAnnotations.ACCESSORS_FLUENT_TRUE.getAnnotation()); + } else { + Method getIncMapMethod = JavaElementGeneratorTools.generateMethod( + METHOD_GET_INC_MAP, + JavaVisibility.PUBLIC, + fIncrements.getType() + ); + commentGenerator.addGeneralMethodComment(getIncMapMethod, introspectedTable); + getIncMapMethod.addBodyLine("return this." + FIELD_INC_MAP + ";"); + FormatTools.addMethodWithBestPosition(topLevelClass, getIncMapMethod); } // 增加判断方法 Method mHasIncsForColumn = JavaElementGeneratorTools.generateMethod(