Commit cbfe10c9 authored by hewei's avatar hewei

补充 UpserPlugin+IncrementsPlugin+SelectiveEnhancedPlugin 整合测试用例

parent 0f16031f
...@@ -257,6 +257,7 @@ public class UpsertPlugin extends BasePlugin { ...@@ -257,6 +257,7 @@ public class UpsertPlugin extends BasePlugin {
insertTrimElement.addAttribute(new Attribute("suffixOverrides", ",")); insertTrimElement.addAttribute(new Attribute("suffixOverrides", ","));
insertOtherwiseEle.addElement(insertTrimElement); insertOtherwiseEle.addElement(insertTrimElement);
eleUpsertSelective.addElement(new TextElement("values"));
XmlElement valuesChooseEle = new XmlElement("choose"); XmlElement valuesChooseEle = new XmlElement("choose");
eleUpsertSelective.addElement(valuesChooseEle); eleUpsertSelective.addElement(valuesChooseEle);
...@@ -268,21 +269,15 @@ public class UpsertPlugin extends BasePlugin { ...@@ -268,21 +269,15 @@ public class UpsertPlugin extends BasePlugin {
XmlElement valuesForeachEle = new XmlElement("foreach"); XmlElement valuesForeachEle = new XmlElement("foreach");
valuesForeachEle.addAttribute(new Attribute("collection", "selective")); valuesForeachEle.addAttribute(new Attribute("collection", "selective"));
valuesForeachEle.addAttribute(new Attribute("item", "column")); valuesForeachEle.addAttribute(new Attribute("item", "column"));
valuesForeachEle.addAttribute(new Attribute("open", "values (")); valuesForeachEle.addAttribute(new Attribute("open", "("));
valuesForeachEle.addAttribute(new Attribute("separator", ",")); valuesForeachEle.addAttribute(new Attribute("separator", ","));
valuesForeachEle.addAttribute(new Attribute("close", ")")); valuesForeachEle.addAttribute(new Attribute("close", ")"));
valuesForeachEle.addElement(new TextElement("#{record.${column.javaProperty},jdbcType=${column.jdbcType}}")); valuesForeachEle.addElement(new TextElement("#{record.${column.javaProperty},jdbcType=${column.jdbcType}}"));
valuesWhenEle.addElement(valuesForeachEle); valuesWhenEle.addElement(valuesForeachEle);
XmlElement valuesOtherwiseEle = new XmlElement("otherwise"); XmlElement valuesOtherwiseEle = new XmlElement("otherwise");
valuesOtherwiseEle.addElement(XmlElementGeneratorTools.generateValuesSelective(columns, "record."));
valuesChooseEle.addElement(valuesOtherwiseEle); valuesChooseEle.addElement(valuesOtherwiseEle);
valuesOtherwiseEle.addElement(XmlElementGeneratorTools.generateValuesSelective(columns, "record."));
XmlElement valuesTrimElement = new XmlElement("trim");
valuesTrimElement.addAttribute(new Attribute("prefix", "values ("));
valuesTrimElement.addAttribute(new Attribute("suffix", ")"));
valuesTrimElement.addAttribute(new Attribute("suffixOverrides", ","));
valuesOtherwiseEle.addElement(valuesTrimElement);
eleUpsertSelective.addElement(new TextElement("on duplicate key update ")); eleUpsertSelective.addElement(new TextElement("on duplicate key update "));
...@@ -295,11 +290,17 @@ public class UpsertPlugin extends BasePlugin { ...@@ -295,11 +290,17 @@ public class UpsertPlugin extends BasePlugin {
setChooseEle.addElement(setWhenEle); setChooseEle.addElement(setWhenEle);
XmlElement setForeachEle = new XmlElement("foreach"); XmlElement setForeachEle = new XmlElement("foreach");
setWhenEle.addElement(setForeachEle);
setForeachEle.addAttribute(new Attribute("collection", "selective")); setForeachEle.addAttribute(new Attribute("collection", "selective"));
setForeachEle.addAttribute(new Attribute("item", "column")); setForeachEle.addAttribute(new Attribute("item", "column"));
setForeachEle.addAttribute(new Attribute("separator", ",")); setForeachEle.addAttribute(new Attribute("separator", ","));
setForeachEle.addElement(new TextElement("${column.value} = #{record.${column.javaProperty},jdbcType=${column.jdbcType}}")); // set 操作增加增量插件支持
setWhenEle.addElement(setForeachEle); IncrementsPluginTools incTools = IncrementsPluginTools.getTools(context, introspectedTable, warnings);
if (incTools.support()) {
incTools.generateSetsSelectiveWithSelectiveEnhancedPlugin(setForeachEle);
} else {
setForeachEle.addElement(new TextElement("${column.value} = #{record.${column.javaProperty},jdbcType=${column.jdbcType}}"));
}
XmlElement setOtherwiseEle = new XmlElement("otherwise"); XmlElement setOtherwiseEle = new XmlElement("otherwise");
// set 操作增加增量插件支持 // set 操作增加增量插件支持
...@@ -334,11 +335,16 @@ public class UpsertPlugin extends BasePlugin { ...@@ -334,11 +335,16 @@ public class UpsertPlugin extends BasePlugin {
setChooseEle.addElement(setWhenEle); setChooseEle.addElement(setWhenEle);
setForeachEle = new XmlElement("foreach"); setForeachEle = new XmlElement("foreach");
setWhenEle.addElement(setForeachEle);
setForeachEle.addAttribute(new Attribute("collection", "selective")); setForeachEle.addAttribute(new Attribute("collection", "selective"));
setForeachEle.addAttribute(new Attribute("item", "column")); setForeachEle.addAttribute(new Attribute("item", "column"));
setForeachEle.addAttribute(new Attribute("separator", ",")); setForeachEle.addAttribute(new Attribute("separator", ","));
setForeachEle.addElement(new TextElement("${column.value} = #{record.${column.javaProperty},jdbcType=${column.jdbcType}}")); // set 操作增加增量插件支持
setWhenEle.addElement(setForeachEle); if (incTools.support()) {
incTools.generateSetsSelectiveWithSelectiveEnhancedPlugin(setForeachEle);
} else {
setForeachEle.addElement(new TextElement("${column.value} = #{record.${column.javaProperty},jdbcType=${column.jdbcType}}"));
}
setOtherwiseEle = new XmlElement("otherwise"); setOtherwiseEle = new XmlElement("otherwise");
...@@ -580,7 +586,7 @@ public class UpsertPlugin extends BasePlugin { ...@@ -580,7 +586,7 @@ public class UpsertPlugin extends BasePlugin {
selectWhenEle.addElement(valuesForeachEle); selectWhenEle.addElement(valuesForeachEle);
XmlElement selectOtherwiseEle = new XmlElement("otherwise"); XmlElement selectOtherwiseEle = new XmlElement("otherwise");
selectOtherwiseEle.addElement(XmlElementGeneratorTools.generateValuesSelective(columns, "record.")); selectOtherwiseEle.addElement(XmlElementGeneratorTools.generateValuesSelective(columns, "record.", false));
chooseEle.addElement(selectOtherwiseEle); chooseEle.addElement(selectOtherwiseEle);
XmlElement valuesTrimElement = new XmlElement("trim"); XmlElement valuesTrimElement = new XmlElement("trim");
......
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