Commit a53e8e05 authored by hewei's avatar hewei

乐观锁插件支持自定义nextVersion

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