Bladeren bron

移动乐观锁常量,标记原有常量过时.

nieqiuqiu 6 jaren geleden
bovenliggende
commit
9007dc79d5

+ 2 - 3
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/MybatisDefaultParameterHandler.java

@@ -108,9 +108,8 @@ public class MybatisDefaultParameterHandler extends DefaultParameterHandler {
                         if (et != null) {
                             if (et instanceof Map) {
                                 Map<?, ?> realEtMap = (Map<?, ?>) et;
-                                if (realEtMap.containsKey("MP_OPTLOCK_ET_ORIGINAL")) {
-                                    //refer to OptimisticLockerInterceptor.MP_OPTLOCK_ET_ORIGINAL
-                                    tableInfo = TableInfoHelper.getTableInfo(realEtMap.get("MP_OPTLOCK_ET_ORIGINAL").getClass());
+                                if (realEtMap.containsKey(Constants.MP_OPTLOCK_ET_ORIGINAL)) {
+                                    tableInfo = TableInfoHelper.getTableInfo(realEtMap.get(Constants.MP_OPTLOCK_ET_ORIGINAL).getClass());
                                 }
                             } else {
                                 tableInfo = TableInfoHelper.getTableInfo(et.getClass());

+ 3 - 2
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/handlers/MetaObjectHandler.java

@@ -37,6 +37,7 @@ public interface MetaObjectHandler {
 
     /**
      * 乐观锁常量
+     * @deprecated 3.1.1 {@link Constants#MP_OPTLOCK_ET_ORIGINAL}
      */
     String MP_OPTLOCK_ET_ORIGINAL = "MP_OPTLOCK_ET_ORIGINAL";
 
@@ -163,8 +164,8 @@ public interface MetaObjectHandler {
      * @since 3.0.7
      */
     default boolean isFill(String fieldName, Object fieldVal, MetaObject metaObject, FieldFill fieldFill) {
-        TableInfo tableInfo = metaObject.hasGetter(MP_OPTLOCK_ET_ORIGINAL) ?
-            TableInfoHelper.getTableInfo(metaObject.getValue(MP_OPTLOCK_ET_ORIGINAL).getClass())
+        TableInfo tableInfo = metaObject.hasGetter(Constants.MP_OPTLOCK_ET_ORIGINAL) ?
+            TableInfoHelper.getTableInfo(metaObject.getValue(Constants.MP_OPTLOCK_ET_ORIGINAL).getClass())
             : TableInfoHelper.getTableInfo(metaObject.getOriginalObject().getClass());
         if (Objects.nonNull(tableInfo)) {
             Optional<TableFieldInfo> first = tableInfo.getFieldList().stream()

+ 4 - 3
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/injector/methods/UpdateById.java

@@ -18,6 +18,7 @@ package com.baomidou.mybatisplus.core.injector.methods;
 import com.baomidou.mybatisplus.core.enums.SqlMethod;
 import com.baomidou.mybatisplus.core.injector.AbstractMethod;
 import com.baomidou.mybatisplus.core.metadata.TableInfo;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import org.apache.ibatis.mapping.MappedStatement;
 import org.apache.ibatis.mapping.SqlSource;
@@ -36,9 +37,9 @@ public class UpdateById extends AbstractMethod {
         boolean logicDelete = tableInfo.isLogicDelete();
         SqlMethod sqlMethod = SqlMethod.UPDATE_BY_ID;
         StringBuilder append = new StringBuilder("<if test=\"et instanceof java.util.Map\">")
-            .append("<if test=\"et.").append("MP_OPTLOCK_VERSION_ORIGINAL").append("!=null\">")
-            .append(" AND ${et.").append("MP_OPTLOCK_VERSION_COLUMN")
-            .append("}=#{et.").append("MP_OPTLOCK_VERSION_ORIGINAL").append(StringPool.RIGHT_BRACE)
+            .append("<if test=\"et.").append(Constants.MP_OPTLOCK_VERSION_ORIGINAL).append("!=null\">")
+            .append(" AND ${et.").append(Constants.MP_OPTLOCK_VERSION_COLUMN)
+            .append("}=#{et.").append(Constants.MP_OPTLOCK_VERSION_ORIGINAL).append(StringPool.RIGHT_BRACE)
             .append("</if></if>");
         if (logicDelete) {
             append.append(tableInfo.getLogicDeleteSql(true, false));

+ 5 - 0
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/Constants.java

@@ -99,4 +99,9 @@ public interface Constants extends StringPool {
      * where
      */
     String WHERE = "WHERE";
+
+    //乐观锁字段
+    String MP_OPTLOCK_VERSION_ORIGINAL = "MP_OPTLOCK_VERSION_ORIGINAL";
+    String MP_OPTLOCK_VERSION_COLUMN = "MP_OPTLOCK_VERSION_COLUMN";
+    String MP_OPTLOCK_ET_ORIGINAL = "MP_OPTLOCK_ET_ORIGINAL";
 }

+ 15 - 4
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/plugins/OptimisticLockerInterceptor.java

@@ -71,9 +71,20 @@ import lombok.Data;
 @Intercepts({@Signature(type = Executor.class, method = "update", args = {MappedStatement.class, Object.class})})
 public class OptimisticLockerInterceptor implements Interceptor {
 
-    //todo 这里需要改动下
+    /**
+     * 乐观锁常量
+     * @deprecated 3.1.1 {@link Constants#MP_OPTLOCK_VERSION_ORIGINAL}
+     */
     public static final String MP_OPTLOCK_VERSION_ORIGINAL = "MP_OPTLOCK_VERSION_ORIGINAL";
+    /**
+     * 乐观锁常量
+     * @deprecated 3.1.1 {@link Constants#MP_OPTLOCK_VERSION_COLUMN}
+     */
     public static final String MP_OPTLOCK_VERSION_COLUMN = "MP_OPTLOCK_VERSION_COLUMN";
+    /**
+     * 乐观锁常量
+     * @deprecated 3.1.1 {@link Constants#MP_OPTLOCK_ET_ORIGINAL}
+     */
     public static final String MP_OPTLOCK_ET_ORIGINAL = "MP_OPTLOCK_ET_ORIGINAL";
     private static final String NAME_ENTITY = Constants.ENTITY;
     private static final String NAME_ENTITY_WRAPPER = Constants.WRAPPER;
@@ -182,9 +193,9 @@ public class OptimisticLockerInterceptor implements Interceptor {
         //update to cache
         entityVersionField.setColumnName(versionColumnName);
         entityMap.put(versionField.getName(), updatedVersionVal);
-        entityMap.put(MP_OPTLOCK_VERSION_ORIGINAL, originalVersionVal);
-        entityMap.put(MP_OPTLOCK_VERSION_COLUMN, versionColumnName);
-        entityMap.put(MP_OPTLOCK_ET_ORIGINAL, et);
+        entityMap.put(Constants.MP_OPTLOCK_VERSION_ORIGINAL, originalVersionVal);
+        entityMap.put(Constants.MP_OPTLOCK_VERSION_COLUMN, versionColumnName);
+        entityMap.put(Constants.MP_OPTLOCK_ET_ORIGINAL, et);
         map.put(NAME_ENTITY, entityMap);
     }
 

+ 1 - 4
mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/MybatisTest.java

@@ -73,9 +73,7 @@ class MybatisTest {
         ScriptRunner scriptRunner = new ScriptRunner(connection);
         scriptRunner.runScript(Resources.getResourceAsReader("h2/user.ddl.sql"));
         H2UserMapper mapper = sqlSession.getMapper(H2UserMapper.class);
-        mapper.delete(new QueryWrapper<>());
         Assertions.assertEquals(mapper.myInsertWithNameVersion("test", 2), 1);
-        Assertions.assertEquals(mapper.mySelectMaps().size(), 1);
         Assertions.assertEquals(mapper.insert(new H2User("test")), 1);
         Assertions.assertEquals(mapper.selectCount(new QueryWrapper<H2User>().lambda().eq(H2User::getName, "test")), 2);
         Assertions.assertEquals(mapper.delete(new QueryWrapper<H2User>().lambda().eq(H2User::getName, "test")), 2);
@@ -88,8 +86,7 @@ class MybatisTest {
         Assertions.assertNotNull(user.getTestType());
         Assertions.assertEquals(mapper.updateById(new H2User(66L, "777777")), 1);
         Assertions.assertEquals(mapper.deleteById(66L), 1);
-        Assertions.assertEquals(mapper.insert(h2User), 1);
-        Assertions.assertEquals(mapper.delete(new QueryWrapper<>()), 1);
+        Assertions.assertNull(mapper.selectById(66L));
     }
 
 }