diff --git a/src/main/java/com/itfsw/mybatis/generator/plugins/ModelColumnPlugin.java b/src/main/java/com/itfsw/mybatis/generator/plugins/ModelColumnPlugin.java
index 0b9994f..b0c0237 100644
--- a/src/main/java/com/itfsw/mybatis/generator/plugins/ModelColumnPlugin.java
+++ b/src/main/java/com/itfsw/mybatis/generator/plugins/ModelColumnPlugin.java
@@ -37,11 +37,9 @@ public class ModelColumnPlugin extends BasePlugin {
public static final String ENUM_NAME = "Column"; // 内部Enum名
public static final String METHOD_EXCLUDES = "excludes"; // 方法名
public static final String METHOD_GET_ESCAPED_COLUMN_NAME = "getEscapedColumnName"; // 方法名
- public static final String METHOD_GET_ALIASED_ESCAPED_COLUMN_NAME = "getAliasedEscapedColumnName"; // 方法名
public static final String CONST_BEGINNING_DELIMITER = "BEGINNING_DELIMITER"; // const
public static final String CONST_ENDING_DELIMITER = "ENDING_DELIMITER"; // const
- public static final String CONST_TABLE_ALIAS = "TABLE_ALIAS"; // const
/**
* Model Methods 生成
@@ -203,14 +201,14 @@ public class ModelColumnPlugin extends BasePlugin {
Method desc = new Method("desc");
desc.setVisibility(JavaVisibility.PUBLIC);
desc.setReturnType(FullyQualifiedJavaType.getStringInstance());
- desc.addBodyLine("return this.column + \" DESC\";");
+ desc.addBodyLine("return this." + METHOD_GET_ESCAPED_COLUMN_NAME + "() + \" DESC\";");
commentGenerator.addGeneralMethodComment(desc, introspectedTable);
FormatTools.addMethodWithBestPosition(innerEnum, desc);
Method asc = new Method("asc");
asc.setVisibility(JavaVisibility.PUBLIC);
asc.setReturnType(FullyQualifiedJavaType.getStringInstance());
- asc.addBodyLine("return this.column + \" ASC\";");
+ asc.addBodyLine("return this." + METHOD_GET_ESCAPED_COLUMN_NAME + "() + \" ASC\";");
commentGenerator.addGeneralMethodComment(asc, introspectedTable);
FormatTools.addMethodWithBestPosition(innerEnum, asc);
logger.debug("itfsw(数据Model属性对应Column获取插件):" + topLevelClass.getType().getShortName() + ".Column增加asc()和desc()方法。");
@@ -259,51 +257,6 @@ public class ModelColumnPlugin extends BasePlugin {
FormatTools.addMethodWithBestPosition(innerEnum, mGetEscapedColumnName);
logger.debug("itfsw(数据Model属性对应Column获取插件):" + topLevelClass.getType().getShortName() + ".Column增加getEscapedColumnName方法。");
- // getAliasedEscapedColumnName
- if (StringUtility.stringHasValue(introspectedTable.getTableConfiguration().getAlias())) {
- // 生成常量
- Field tableAliasField = JavaElementGeneratorTools.generateField(
- CONST_TABLE_ALIAS,
- JavaVisibility.PRIVATE,
- FullyQualifiedJavaType.getStringInstance(),
- "\"" + StringUtility.escapeStringForJava(introspectedTable.getTableConfiguration().getAlias()) + "\""
- );
- tableAliasField.setStatic(true);
- tableAliasField.setFinal(true);
- commentGenerator.addFieldComment(tableAliasField, introspectedTable);
- innerEnum.addField(tableAliasField);
-
- Method mGetAliasedEscapedColumnName = JavaElementGeneratorTools.generateMethod(
- METHOD_GET_ALIASED_ESCAPED_COLUMN_NAME,
- JavaVisibility.PUBLIC,
- FullyQualifiedJavaType.getStringInstance()
- );
- commentGenerator.addGeneralMethodComment(mGetAliasedEscapedColumnName, introspectedTable);
- JavaElementGeneratorTools.generateMethodBody(
- mGetAliasedEscapedColumnName,
- "StringBuilder sb = new StringBuilder();",
- "sb.append(" + CONST_TABLE_ALIAS + ");",
- "sb.append('.');",
- "sb.append(this.getEscapedColumnName());",
- "return sb.toString();"
- );
- FormatTools.addMethodWithBestPosition(innerEnum, mGetAliasedEscapedColumnName);
- logger.debug("itfsw(数据Model属性对应Column获取插件):" + topLevelClass.getType().getShortName() + ".Column增加getAliasedEscapedColumnName方法。");
- } else {
- Method mGetAliasedEscapedColumnName = JavaElementGeneratorTools.generateMethod(
- METHOD_GET_ALIASED_ESCAPED_COLUMN_NAME,
- JavaVisibility.PUBLIC,
- FullyQualifiedJavaType.getStringInstance()
- );
- commentGenerator.addGeneralMethodComment(mGetAliasedEscapedColumnName, introspectedTable);
- JavaElementGeneratorTools.generateMethodBody(
- mGetAliasedEscapedColumnName,
- "return this." + METHOD_GET_ESCAPED_COLUMN_NAME + "();"
- );
- FormatTools.addMethodWithBestPosition(innerEnum, mGetAliasedEscapedColumnName);
- logger.debug("itfsw(数据Model属性对应Column获取插件):" + topLevelClass.getType().getShortName() + ".Column增加getAliasedEscapedColumnName方法。");
- }
-
return innerEnum;
}
}
diff --git a/src/main/java/com/itfsw/mybatis/generator/plugins/utils/BasePlugin.java b/src/main/java/com/itfsw/mybatis/generator/plugins/utils/BasePlugin.java
index 117c959..a135d3b 100644
--- a/src/main/java/com/itfsw/mybatis/generator/plugins/utils/BasePlugin.java
+++ b/src/main/java/com/itfsw/mybatis/generator/plugins/utils/BasePlugin.java
@@ -107,6 +107,9 @@ public class BasePlugin extends PluginAdapter {
@Override
public void initialized(IntrospectedTable introspectedTable) {
super.initialized(introspectedTable);
+ if (StringUtility.stringHasValue(introspectedTable.getTableConfiguration().getAlias())){
+ warnings.add("itfsw:插件" + this.getClass().getTypeName() + "请不要配置alias属性,这个属性官方支持也很混乱,导致插件支持会存在问题!");
+ }
PluginTools.getHook(ITableConfigurationHook.class).tableConfiguration(introspectedTable);
}
}
diff --git a/src/test/java/com/itfsw/mybatis/generator/plugins/BugFixedTest.java b/src/test/java/com/itfsw/mybatis/generator/plugins/BugFixedTest.java
index d981b81..860f317 100644
--- a/src/test/java/com/itfsw/mybatis/generator/plugins/BugFixedTest.java
+++ b/src/test/java/com/itfsw/mybatis/generator/plugins/BugFixedTest.java
@@ -22,6 +22,7 @@ import org.junit.Assert;
import org.junit.Test;
import java.lang.reflect.Array;
+import java.util.List;
/**
* ---------------------------------------------------------------------------
@@ -61,6 +62,17 @@ public class BugFixedTest {
Assert.assertEquals(sql, "insert into tb ( id , field1 , `table` ) values ( 121 , 'inc_001' , 'tb' )");
Object result = tbMapper.invoke("insertSelective", tb.getObject(), columns);
Assert.assertEquals(result, 1);
+
+ // 执行查询
+ ObjectUtil tbExample = new ObjectUtil(loader, packagz + ".TbExample");
+ ObjectUtil criteria = new ObjectUtil(tbExample.invoke("createCriteria"));
+ criteria.invoke("andIdLessThan", 160l);
+ tbExample.set("orderByClause", TbColumnTable.invoke("asc"));
+
+ sql = SqlHelper.getFormatMapperSql(tbMapper.getObject(), "selectByExampleSelective", tbExample.getObject(), columns);
+ Assert.assertEquals(sql, "select id , field1 , `table` from tb Test WHERE ( Test.id < '160' ) order by `table` ASC");
+ ObjectUtil result1 = new ObjectUtil(((List)tbMapper.invoke("selectByExampleSelective", tbExample.getObject(), columns)).get(0));
+ Assert.assertEquals(result1.get("table"), "tb");
}
});
}
diff --git a/src/test/resources/scripts/BugFixedTest/bug-0001.xml b/src/test/resources/scripts/BugFixedTest/bug-0001.xml
index f0583e9..8b09b55 100644
--- a/src/test/resources/scripts/BugFixedTest/bug-0001.xml
+++ b/src/test/resources/scripts/BugFixedTest/bug-0001.xml
@@ -28,6 +28,7 @@
+