diff --git a/src/main/java/com/itfsw/mybatis/generator/plugins/OptimisticLockerPlugin.java b/src/main/java/com/itfsw/mybatis/generator/plugins/OptimisticLockerPlugin.java index 9ffed0c..7fe80be 100644 --- a/src/main/java/com/itfsw/mybatis/generator/plugins/OptimisticLockerPlugin.java +++ b/src/main/java/com/itfsw/mybatis/generator/plugins/OptimisticLockerPlugin.java @@ -69,6 +69,8 @@ public class OptimisticLockerPlugin extends BasePlugin implements IModelBuilderP if (this.versionColumn == null) { warnings.add("itfsw(乐观锁插件):表" + introspectedTable.getFullyQualifiedTable() + "配置的版本列(" + introspectedTable.getTableConfigurationProperty(PRO_VERSION_COLUMN) + ")没有找到!"); } + } else { + this.versionColumn = null; } // 自定义nextVersion diff --git a/src/test/java/com/itfsw/mybatis/generator/plugins/BugFixedTest.java b/src/test/java/com/itfsw/mybatis/generator/plugins/BugFixedTest.java index 4d22b3b..b222670 100644 --- a/src/test/java/com/itfsw/mybatis/generator/plugins/BugFixedTest.java +++ b/src/test/java/com/itfsw/mybatis/generator/plugins/BugFixedTest.java @@ -71,7 +71,7 @@ public class BugFixedTest { sql = SqlHelper.getFormatMapperSql(tbMapper.getObject(), "selectByExampleSelective", tbExample.getObject(), columns); Assert.assertEquals(sql, "select id , field1 , `table` from tb Test WHERE ( Test.id < '160' ) order by `table` ASC"); - ObjectUtil result1 = new ObjectUtil(((List)tbMapper.invoke("selectByExampleSelective", tbExample.getObject(), columns)).get(0)); + ObjectUtil result1 = new ObjectUtil(((List) tbMapper.invoke("selectByExampleSelective", tbExample.getObject(), columns)).get(0)); Assert.assertEquals(result1.get("table"), "tb"); } }); @@ -107,4 +107,24 @@ public class BugFixedTest { } }); } + + /** + * 乐观锁插件好像变量作用域问题导致,前一个表的配置会影响后一个表配置 + */ + @Test + public void issues39() throws Exception { + MyBatisGeneratorTool tool = MyBatisGeneratorTool.create("scripts/BugFixedTest/issues-39.xml"); + tool.generate(() -> DBHelper.createDB("scripts/BugFixedTest/issues-39.sql"), new AbstractShellCallback() { + @Override + public void reloadProject(SqlSession sqlSession, ClassLoader loader, String packagz) throws Exception { + ObjectUtil tbMapper = new ObjectUtil(sqlSession.getMapper(loader.loadClass(packagz + ".TbMapper"))); + // 第一个生成对应方法 + Assert.assertEquals(tbMapper.getMethods(OptimisticLockerPlugin.METHOD_DELETE_WITH_VERSION_BY_EXAMPLE).size(), 1); + + ObjectUtil tb1Mapper = new ObjectUtil(sqlSession.getMapper(loader.loadClass(packagz + ".Tb1Mapper"))); + // 第一个生成对应方法 + Assert.assertEquals(tb1Mapper.getMethods(OptimisticLockerPlugin.METHOD_DELETE_WITH_VERSION_BY_EXAMPLE).size(), 0); + } + }); + } } diff --git a/src/test/resources/scripts/BugFixedTest/issues-39.sql b/src/test/resources/scripts/BugFixedTest/issues-39.sql new file mode 100644 index 0000000..e797c38 --- /dev/null +++ b/src/test/resources/scripts/BugFixedTest/issues-39.sql @@ -0,0 +1,38 @@ +/* +Navicat MySQL Data Transfer + +Source Server : localhost +Source Server Version : 50617 +Source Host : localhost:3306 +Source Database : mybatis-generator-plugin + +Target Server Type : MYSQL +Target Server Version : 50617 +File Encoding : 65001 + +Date: 2017-06-27 11:17:08 +*/ + +SET FOREIGN_KEY_CHECKS=0; + +-- ---------------------------- +-- Table structure for tb +-- ---------------------------- +DROP TABLE IF EXISTS `tb`; +CREATE TABLE `tb` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '注释1', + `field1` varchar(255) DEFAULT NULL COMMENT '注释2', + `vs` int DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Table structure for tb1 +-- ---------------------------- +DROP TABLE IF EXISTS `tb1`; +CREATE TABLE `tb1` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '注释1', + `field1` varchar(255) DEFAULT NULL COMMENT '注释2', + `vs` int DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; \ No newline at end of file diff --git a/src/test/resources/scripts/BugFixedTest/issues-39.xml b/src/test/resources/scripts/BugFixedTest/issues-39.xml new file mode 100644 index 0000000..4c7223d --- /dev/null +++ b/src/test/resources/scripts/BugFixedTest/issues-39.xml @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
\ No newline at end of file