From b67fedf9712f92df78b59c2c3e974c411ea4e465 Mon Sep 17 00:00:00 2001 From: hewei Date: Wed, 30 May 2018 13:31:19 +0800 Subject: [PATCH] =?UTF-8?q?ExampleEnhancedPlugin:=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=9F=BA=E4=BA=8EColumn=E7=9A=84=E6=93=8D=E4=BD=9C=E4=BB=A5?= =?UTF-8?q?=E5=8F=8A=E5=AF=B9=E5=BA=94=E6=B5=8B=E8=AF=95=E7=94=A8=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 16 +++++++++++++++- .../generator/plugins/ExampleEnhancedPlugin.java | 4 ++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 12a320c..20e2efe 100644 --- a/README.md +++ b/README.md @@ -226,7 +226,8 @@ public class Test { * Criteria的快速返回example()方法。 * Criteria链式调用增强,以前如果有按条件增加的查询语句会打乱链式查询构建,现在有了andIf(boolean ifAdd, CriteriaAdd add)方法可一直使用链式调用下去。 * Example增强了setOrderByClause方法,新增orderBy(String orderByClause)方法直接返回example,增强链式调用,可以一路.下去了。 -* 继续增强orderBy(String orderByClause)方法,增加orderBy(String ... orderByClauses)方法,配合数据Model属性对应Column获取插件(ModelColumnPlugin)使用效果更佳。 +* 继续增强orderBy(String orderByClause)方法,增加orderBy(String ... orderByClauses)方法,配合数据Model属性对应Column获取插件(ModelColumnPlugin)使用效果更佳。 +* 增加基于column的操作,当配置了[数据Model属性对应Column获取插件(ModelColumnPlugin)](#8-数据model属性对应column获取插件)插件时,提供column之间的比对操作。 插件: ```xml @@ -300,6 +301,19 @@ public class Test { // 这个配合数据Model属性对应Column获取插件(ModelColumnPlugin)使用 .orderBy(Tb.Column.field1.asc(), Tb.Column.field3.desc()) ); + + // -----------------------------------column----------------------------------- + this.tbMapper.selectByExample( + new TbExample() + .createCriteria() + .andField1EqualToColumn(Tb.Column.field2) // where field1 = field2 + .andField1NotEqualToColumn(Tb.Column.field2) // where field1 <> field2 + .andField1GreaterThanColumn(Tb.Column.field2) // where field1 > field2 + .andField1GreaterThanOrEqualToColumn(Tb.Column.field2) // where field1 >= field2 + .andField1LessThanColumn(Tb.Column.field2) // where field1 < field2 + .andField1LessThanOrEqualToColumn(Tb.Column.field2) // where field1 <= field2 + .example() + ); } } ``` diff --git a/src/main/java/com/itfsw/mybatis/generator/plugins/ExampleEnhancedPlugin.java b/src/main/java/com/itfsw/mybatis/generator/plugins/ExampleEnhancedPlugin.java index 9fc847e..d9f9d7b 100644 --- a/src/main/java/com/itfsw/mybatis/generator/plugins/ExampleEnhancedPlugin.java +++ b/src/main/java/com/itfsw/mybatis/generator/plugins/ExampleEnhancedPlugin.java @@ -80,10 +80,10 @@ public class ExampleEnhancedPlugin extends BasePlugin { * @param introspectedTable */ private void addColumnMethodToCriteria(TopLevelClass topLevelClass, InnerClass innerClass, IntrospectedTable introspectedTable) { + // !!!!! Column import比较特殊引入的是外部类 + topLevelClass.addImportedType(introspectedTable.getRules().calculateAllFieldsClass()); for (IntrospectedColumn introspectedColumn : introspectedTable.getNonBLOBColumns()) { topLevelClass.addImportedType(introspectedColumn.getFullyQualifiedJavaType()); - // !!!!! Column import比较特殊引入的是外部类 - topLevelClass.addImportedType(introspectedTable.getRules().calculateAllFieldsClass()); // EqualTo FormatTools.addMethodWithBestPosition(innerClass, this.generateSingleValueMethod(introspectedTable, introspectedColumn, "EqualTo", "=")); // NotEqualTo