Commit a53e8e05 authored by hewei's avatar hewei

乐观锁插件支持自定义nextVersion

parent b0d01d16
...@@ -237,6 +237,20 @@ public class IncrementsPlugin extends BasePlugin implements IModelBuilderPluginH ...@@ -237,6 +237,20 @@ public class IncrementsPlugin extends BasePlugin implements IModelBuilderPluginH
return true; return true;
} }
/**
* Model builder set 方法生成
* @param method
* @param topLevelClass
* @param builderClass
* @param introspectedColumn
* @param introspectedTable
* @return
*/
@Override
public boolean modelBuilderSetterMethodGenerated(Method method, TopLevelClass topLevelClass, InnerClass builderClass, IntrospectedColumn introspectedColumn, IntrospectedTable introspectedTable) {
return true;
}
// =============================================== IIncrementsPluginHook =================================================== // =============================================== IIncrementsPluginHook ===================================================
/** /**
......
...@@ -200,9 +200,18 @@ public class OptimisticLockerPlugin extends BasePlugin implements IModelBuilderP ...@@ -200,9 +200,18 @@ public class OptimisticLockerPlugin extends BasePlugin implements IModelBuilderP
return super.modelSetterMethodGenerated(method, topLevelClass, introspectedColumn, introspectedTable, modelClassType); return super.modelSetterMethodGenerated(method, topLevelClass, introspectedColumn, introspectedTable, modelClassType);
} }
/**
* Model builder set 方法生成
* @param method
* @param topLevelClass
* @param builderClass
* @param introspectedColumn
* @param introspectedTable
* @return
*/
@Override @Override
public boolean modelBuilderClassGenerated(TopLevelClass topLevelClass, InnerClass builderClass, List<IntrospectedColumn> columns, IntrospectedTable introspectedTable) { public boolean modelBuilderSetterMethodGenerated(Method method, TopLevelClass topLevelClass, InnerClass builderClass, IntrospectedColumn introspectedColumn, IntrospectedTable introspectedTable) {
if (this.versionColumn != null && this.customizedNextVersion) { if (this.versionColumn != null && this.customizedNextVersion && introspectedColumn.getActualColumnName().equals(this.versionColumn.getActualColumnName())) {
// nextVersion 方法 // nextVersion 方法
Method nextVersion = JavaElementGeneratorTools.generateMethod( Method nextVersion = JavaElementGeneratorTools.generateMethod(
METHOD_NEXT_VERSION, METHOD_NEXT_VERSION,
...@@ -222,9 +231,23 @@ public class OptimisticLockerPlugin extends BasePlugin implements IModelBuilderP ...@@ -222,9 +231,23 @@ public class OptimisticLockerPlugin extends BasePlugin implements IModelBuilderP
FormatTools.addMethodWithBestPosition(builderClass, nextVersion); FormatTools.addMethodWithBestPosition(builderClass, nextVersion);
} }
return true; return true;
} }
/**
* Model builder class 生成
* @param topLevelClass
* @param builderClass
* @param columns
* @param introspectedTable
* @return
*/
@Override
public boolean modelBuilderClassGenerated(TopLevelClass topLevelClass, InnerClass builderClass, List<IntrospectedColumn> columns, IntrospectedTable introspectedTable) {
return false;
}
// ========================================= sqlMap 生成 ============================================ // ========================================= sqlMap 生成 ============================================
@Override @Override
......
...@@ -125,6 +125,16 @@ public class HookAggregator implements IUpsertPluginHook, IModelBuilderPluginHoo ...@@ -125,6 +125,16 @@ public class HookAggregator implements IUpsertPluginHook, IModelBuilderPluginHoo
return true; return true;
} }
@Override
public boolean modelBuilderSetterMethodGenerated(Method method, TopLevelClass topLevelClass, InnerClass builderClass, IntrospectedColumn introspectedColumn, IntrospectedTable introspectedTable) {
for (IModelBuilderPluginHook plugin : this.getPlugins(IModelBuilderPluginHook.class)) {
if (!plugin.modelBuilderSetterMethodGenerated(method, topLevelClass, builderClass, introspectedColumn, introspectedTable)) {
return false;
}
}
return true;
}
// ================================================= IUpsertPluginHook =============================================== // ================================================= IUpsertPluginHook ===============================================
@Override @Override
......
...@@ -19,6 +19,7 @@ package com.itfsw.mybatis.generator.plugins.utils.hook; ...@@ -19,6 +19,7 @@ package com.itfsw.mybatis.generator.plugins.utils.hook;
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.dom.java.InnerClass; import org.mybatis.generator.api.dom.java.InnerClass;
import org.mybatis.generator.api.dom.java.Method;
import org.mybatis.generator.api.dom.java.TopLevelClass; import org.mybatis.generator.api.dom.java.TopLevelClass;
import java.util.List; import java.util.List;
...@@ -41,4 +42,15 @@ public interface IModelBuilderPluginHook { ...@@ -41,4 +42,15 @@ public interface IModelBuilderPluginHook {
* @return * @return
*/ */
boolean modelBuilderClassGenerated(TopLevelClass topLevelClass, InnerClass builderClass, List<IntrospectedColumn> columns, IntrospectedTable introspectedTable); boolean modelBuilderClassGenerated(TopLevelClass topLevelClass, InnerClass builderClass, List<IntrospectedColumn> columns, IntrospectedTable introspectedTable);
/**
* Model builder set 方法生成
* @param method
* @param topLevelClass
* @param builderClass
* @param introspectedColumn
* @param introspectedTable
* @return
*/
boolean modelBuilderSetterMethodGenerated(Method method, TopLevelClass topLevelClass, InnerClass builderClass, IntrospectedColumn introspectedColumn, IntrospectedTable introspectedTable);
} }
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