Commit 40aed678 authored by hewei's avatar hewei

bugfix:插件SelectiveEnhancedPlugin之前命名的判断方法isSelective在进行Json Serializer...

bugfix:插件SelectiveEnhancedPlugin之前命名的判断方法isSelective在进行Json Serializer 时某些情况下可能造成冲突,重新命名为hasSelective
parent 826ad11e
...@@ -40,6 +40,7 @@ import java.util.regex.Pattern; ...@@ -40,6 +40,7 @@ import java.util.regex.Pattern;
* --------------------------------------------------------------------------- * ---------------------------------------------------------------------------
*/ */
public class SelectiveEnhancedPlugin extends BasePlugin { public class SelectiveEnhancedPlugin extends BasePlugin {
public static final String METHOD_HAS_SELECTIVE = "hasSelective"; // 方法名
/** /**
* {@inheritDoc} * {@inheritDoc}
...@@ -80,22 +81,22 @@ public class SelectiveEnhancedPlugin extends BasePlugin { ...@@ -80,22 +81,22 @@ public class SelectiveEnhancedPlugin extends BasePlugin {
selectiveColumnsField.setInitializationString("new HashMap<String, Boolean>()"); selectiveColumnsField.setInitializationString("new HashMap<String, Boolean>()");
topLevelClass.addField(selectiveColumnsField); topLevelClass.addField(selectiveColumnsField);
// Method isSelective // Method hasSelective
Method mIsSelective = new Method("isSelective"); Method mHasSelective = new Method(METHOD_HAS_SELECTIVE);
commentGenerator.addGeneralMethodComment(mIsSelective, introspectedTable); commentGenerator.addGeneralMethodComment(mHasSelective, introspectedTable);
mIsSelective.setVisibility(JavaVisibility.PUBLIC); mHasSelective.setVisibility(JavaVisibility.PUBLIC);
mIsSelective.setReturnType(FullyQualifiedJavaType.getBooleanPrimitiveInstance()); mHasSelective.setReturnType(FullyQualifiedJavaType.getBooleanPrimitiveInstance());
mIsSelective.addBodyLine("return this.selectiveColumns.size() > 0;"); mHasSelective.addBodyLine("return this.selectiveColumns.size() > 0;");
topLevelClass.addMethod(mIsSelective); topLevelClass.addMethod(mHasSelective);
// Method isSelective // Method hasSelective
Method mIsSelective1 = new Method("isSelective"); Method mHasSelective1 = new Method(METHOD_HAS_SELECTIVE);
commentGenerator.addGeneralMethodComment(mIsSelective1, introspectedTable); commentGenerator.addGeneralMethodComment(mHasSelective1, introspectedTable);
mIsSelective1.setVisibility(JavaVisibility.PUBLIC); mHasSelective1.setVisibility(JavaVisibility.PUBLIC);
mIsSelective1.setReturnType(FullyQualifiedJavaType.getBooleanPrimitiveInstance()); mHasSelective1.setReturnType(FullyQualifiedJavaType.getBooleanPrimitiveInstance());
mIsSelective1.addParameter(new Parameter(FullyQualifiedJavaType.getStringInstance(), "column")); mHasSelective1.addParameter(new Parameter(FullyQualifiedJavaType.getStringInstance(), "column"));
mIsSelective1.addBodyLine("return this.selectiveColumns.get(column) != null;"); mHasSelective1.addBodyLine("return this.selectiveColumns.get(column) != null;");
topLevelClass.addMethod(mIsSelective1); topLevelClass.addMethod(mHasSelective1);
// Method selective // Method selective
Method mSelective = new Method("selective"); Method mSelective = new Method("selective");
...@@ -195,7 +196,7 @@ public class SelectiveEnhancedPlugin extends BasePlugin { ...@@ -195,7 +196,7 @@ public class SelectiveEnhancedPlugin extends BasePlugin {
XmlElement chooseEle = new XmlElement("choose"); XmlElement chooseEle = new XmlElement("choose");
// when // when
XmlElement whenEle = new XmlElement("when"); XmlElement whenEle = new XmlElement("when");
whenEle.addAttribute(new Attribute("test", prefix + "isSelective()")); whenEle.addAttribute(new Attribute("test", prefix + METHOD_HAS_SELECTIVE + "()"));
for (Element ele : element.getElements()) { for (Element ele : element.getElements()) {
// 对于字符串主键,是没有if判断节点的 // 对于字符串主键,是没有if判断节点的
if (ele instanceof XmlElement) { if (ele instanceof XmlElement) {
...@@ -232,7 +233,7 @@ public class SelectiveEnhancedPlugin extends BasePlugin { ...@@ -232,7 +233,7 @@ public class SelectiveEnhancedPlugin extends BasePlugin {
XmlElement ifEle = new XmlElement("if"); XmlElement ifEle = new XmlElement("if");
ifEle.addAttribute(new Attribute("test", prefix + "isSelective(\'" + column.getActualColumnName() + "\')")); ifEle.addAttribute(new Attribute("test", prefix + METHOD_HAS_SELECTIVE + "(\'" + column.getActualColumnName() + "\')"));
for (Element ifChild : xmlElement.getElements()) { for (Element ifChild : xmlElement.getElements()) {
ifEle.addElement(ifChild); ifEle.addElement(ifChild);
} }
...@@ -269,10 +270,10 @@ public class SelectiveEnhancedPlugin extends BasePlugin { ...@@ -269,10 +270,10 @@ public class SelectiveEnhancedPlugin extends BasePlugin {
XmlElement chooseEle = new XmlElement("choose"); XmlElement chooseEle = new XmlElement("choose");
// when // when
XmlElement whenEle = new XmlElement("when"); XmlElement whenEle = new XmlElement("when");
whenEle.addAttribute(new Attribute("test", prefix + "isSelective()")); whenEle.addAttribute(new Attribute("test", prefix + METHOD_HAS_SELECTIVE + "()"));
for (IntrospectedColumn introspectedColumn : (allColumns ? introspectedTable.getAllColumns() : introspectedTable.getNonBLOBColumns())) { for (IntrospectedColumn introspectedColumn : (allColumns ? introspectedTable.getAllColumns() : introspectedTable.getNonBLOBColumns())) {
XmlElement eleIf = new XmlElement("if"); XmlElement eleIf = new XmlElement("if");
eleIf.addAttribute(new Attribute("test", prefix + "isSelective(\'" + introspectedColumn.getActualColumnName() + "\')")); eleIf.addAttribute(new Attribute("test", prefix + METHOD_HAS_SELECTIVE + "(\'" + introspectedColumn.getActualColumnName() + "\')"));
eleIf.addElement(new TextElement(MyBatis3FormattingUtilities.getParameterClause(introspectedColumn, prefix) + ",")); eleIf.addElement(new TextElement(MyBatis3FormattingUtilities.getParameterClause(introspectedColumn, prefix) + ","));
whenEle.addElement(eleIf); whenEle.addElement(eleIf);
......
...@@ -79,10 +79,10 @@ public class SelectiveEnhancedPluginTest { ...@@ -79,10 +79,10 @@ public class SelectiveEnhancedPluginTest {
Array.set(columns, 1, TbColumnTsIncF2.getObject()); Array.set(columns, 1, TbColumnTsIncF2.getObject());
tb.invoke("selective", columns); tb.invoke("selective", columns);
Assert.assertTrue((Boolean) tb.invoke("isSelective")); Assert.assertTrue((Boolean) tb.invoke("hasSelective"));
Assert.assertTrue((Boolean) tb.invoke("isSelective", "field_1")); Assert.assertTrue((Boolean) tb.invoke("hasSelective", "field_1"));
Assert.assertFalse((Boolean) tb.invoke("isSelective", "inc_f1")); Assert.assertFalse((Boolean) tb.invoke("hasSelective", "inc_f1"));
Assert.assertTrue((Boolean) tb.invoke("isSelective", "inc_f2")); Assert.assertTrue((Boolean) tb.invoke("hasSelective", "inc_f2"));
} }
}); });
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment