Browse Source

bugfix for no version case

add logic delete case: delete by id
yuxiaobin 8 years ago
parent
commit
114a1954df

+ 5 - 2
src/main/java/com/baomidou/mybatisplus/plugins/OptimisticLockerInterceptor.java

@@ -193,8 +193,11 @@ public class OptimisticLockerInterceptor implements Interceptor {
             }
             }
             // 缓存类信息
             // 缓存类信息
             EntityField field = this.getVersionFieldRegular(parameterClass);
             EntityField field = this.getVersionFieldRegular(parameterClass);
-            versionFieldCache.put(parameterClass, field);
-            return field;
+            if(field!=null) {
+                versionFieldCache.put(parameterClass, field);
+                return field;
+            }
+            return null;
         }
         }
     }
     }
 
 

+ 14 - 0
src/test/java/com/baomidou/mybatisplus/test/h2/H2LogicDeleteTest.java

@@ -105,4 +105,18 @@ public class H2LogicDeleteTest extends H2Test {
         Assert.assertNull(userFromDB);
         Assert.assertNull(userFromDB);
     }
     }
 
 
+    @Test
+    public void testDelete(){
+        H2UserLogicDelete user = new H2UserLogicDelete();
+        user.setAge(1);
+        user.setPrice(new BigDecimal("9.99"));
+        user.setVersion(1);
+        userService.insert(user);
+        Long id = user.getId();
+        Assert.assertNotNull(id);
+        Assert.assertTrue(userService.deleteById(id));
+        H2UserLogicDelete fromDB = userService.selectByIdMy(id);
+        Assert.assertNotNull(fromDB);
+        System.out.println(fromDB);
+    }
 }
 }

+ 6 - 0
src/test/java/com/baomidou/mybatisplus/test/h2/entity/mapper/H2UserLogicDeleteMapper.java

@@ -2,6 +2,7 @@ package com.baomidou.mybatisplus.test.h2.entity.mapper;
 
 
 import org.apache.ibatis.annotations.Insert;
 import org.apache.ibatis.annotations.Insert;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
 import org.apache.ibatis.annotations.Update;
 import org.apache.ibatis.annotations.Update;
 
 
 import com.baomidou.mybatisplus.mapper.BaseMapper;
 import com.baomidou.mybatisplus.mapper.BaseMapper;
@@ -26,4 +27,9 @@ public interface H2UserLogicDeleteMapper extends BaseMapper<H2UserLogicDelete> {
             "update h2user set name=#{name} where test_id=#{id}"
             "update h2user set name=#{name} where test_id=#{id}"
     )
     )
     int myUpdateWithNameId(@Param("id") Long id, @Param("name") String name);
     int myUpdateWithNameId(@Param("id") Long id, @Param("name") String name);
+
+    @Select(
+            "select test_id as id, name, age, version, test_type as testType from h2user where test_id=#{id}"
+    )
+    H2UserLogicDelete selectByIdMy(@Param("id") Long id);
 }
 }

+ 1 - 0
src/test/java/com/baomidou/mybatisplus/test/h2/service/IH2UserLogicDeleteService.java

@@ -12,4 +12,5 @@ import com.baomidou.mybatisplus.test.h2.entity.persistent.H2UserLogicDelete;
  */
  */
 public interface IH2UserLogicDeleteService extends IService<H2UserLogicDelete> {
 public interface IH2UserLogicDeleteService extends IService<H2UserLogicDelete> {
 
 
+    public H2UserLogicDelete selectByIdMy(Long id);
 }
 }

+ 9 - 0
src/test/java/com/baomidou/mybatisplus/test/h2/service/impl/H2UserLogicDeleteServiceImpl.java

@@ -1,5 +1,6 @@
 package com.baomidou.mybatisplus.test.h2.service.impl;
 package com.baomidou.mybatisplus.test.h2.service.impl;
 
 
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
@@ -17,4 +18,12 @@ import com.baomidou.mybatisplus.test.h2.service.IH2UserLogicDeleteService;
 @Service
 @Service
 public class H2UserLogicDeleteServiceImpl extends ServiceImpl<H2UserLogicDeleteMapper, H2UserLogicDelete> implements IH2UserLogicDeleteService {
 public class H2UserLogicDeleteServiceImpl extends ServiceImpl<H2UserLogicDeleteMapper, H2UserLogicDelete> implements IH2UserLogicDeleteService {
 
 
+    @Autowired
+    H2UserLogicDeleteMapper userLogicDeleteMapper;
+
+
+    @Override
+    public H2UserLogicDelete selectByIdMy(Long id) {
+        return userLogicDeleteMapper.selectByIdMy(id);
+    }
 }
 }