Commit 8223231d authored by hewei's avatar hewei

官方ConstructorBased配置BUG临时修正插件

parent df27bb11
...@@ -20,6 +20,7 @@ import com.itfsw.mybatis.generator.plugins.utils.BasePlugin; ...@@ -20,6 +20,7 @@ import com.itfsw.mybatis.generator.plugins.utils.BasePlugin;
import com.itfsw.mybatis.generator.plugins.utils.FormatTools; import com.itfsw.mybatis.generator.plugins.utils.FormatTools;
import org.mybatis.generator.api.IntrospectedColumn; import org.mybatis.generator.api.IntrospectedColumn;
import org.mybatis.generator.api.IntrospectedTable; import org.mybatis.generator.api.IntrospectedTable;
import org.mybatis.generator.api.Plugin;
import org.mybatis.generator.api.dom.java.JavaVisibility; import org.mybatis.generator.api.dom.java.JavaVisibility;
import org.mybatis.generator.api.dom.java.Method; import org.mybatis.generator.api.dom.java.Method;
import org.mybatis.generator.api.dom.java.Parameter; import org.mybatis.generator.api.dom.java.Parameter;
...@@ -46,8 +47,13 @@ public class ConstructorBasedBugFixPlugin extends BasePlugin { ...@@ -46,8 +47,13 @@ public class ConstructorBasedBugFixPlugin extends BasePlugin {
@Override @Override
public boolean modelBaseRecordClassGenerated(TopLevelClass topLevelClass, IntrospectedTable introspectedTable) { public boolean modelBaseRecordClassGenerated(TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {
// 有种情况下ModelBaseRecordClass不会生成不包含BLOBs的构造方法,造成selectOneByExample返回结果找不到对应的构造方法异常 // 有种情况下ModelBaseRecordClass不会生成不包含BLOBs的构造方法
if (introspectedTable.hasBLOBColumns() && !introspectedTable.getRules().generateRecordWithBLOBsClass()) { if (introspectedTable.isConstructorBased() && introspectedTable.hasBLOBColumns() && introspectedTable.getBLOBColumns().size() == 1) {
// 判断是否已经生成了对应构造函数
String version = Plugin.class.getPackage().getImplementationVersion();
if (version != null){
String[] strs = version.split("\\.");
if (strs.length == 3 && strs[0].equals("1") && strs[1].equals("3") && Integer.parseInt(strs[2]) < 6){
// 添加没有BLOBs的构造方法 // 添加没有BLOBs的构造方法
Method method = new Method(); Method method = new Method();
method.setVisibility(JavaVisibility.PUBLIC); method.setVisibility(JavaVisibility.PUBLIC);
...@@ -98,6 +104,8 @@ public class ConstructorBasedBugFixPlugin extends BasePlugin { ...@@ -98,6 +104,8 @@ public class ConstructorBasedBugFixPlugin extends BasePlugin {
FormatTools.addMethodWithBestPosition(topLevelClass, method); FormatTools.addMethodWithBestPosition(topLevelClass, method);
} }
}
}
return true; return true;
} }
......
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