Browse Source

Merge branch 'dev' of https://git.oschina.net/baomidou/mybatis-plus into dev

hubin 8 years ago
parent
commit
7c5a5fc9f5

+ 18 - 16
src/main/java/com/baomidou/mybatisplus/toolkit/TableInfoHelper.java

@@ -225,22 +225,24 @@ public class TableInfoHelper {
     private static void initFieldFillCache(Class<?> clazz, TableInfo tableInfo) {
         clazz = ClassUtils.getUserClass(clazz);
         List<TableFieldInfo> tableFieldInfos = tableInfo.getFieldList();
-        for (TableFieldInfo tableFieldInfo : tableFieldInfos) {
-            FieldFill fieldFill = tableFieldInfo.getFieldFill();
-            if (null == fieldFill || FieldFill.DEFAULT.equals(fieldFill)) {
-                continue;
-            }
-            switch (fieldFill) {
-                case INSERT:
-                    initFieldFill(FieldFill.INSERT, clazz, tableFieldInfo);
-                    break;
-                case UPDATE:
-                    initFieldFill(FieldFill.UPDATE, clazz, tableFieldInfo);
-                    break;
-                case INSERT_UPDATE:
-                    initFieldFill(FieldFill.INSERT, clazz, tableFieldInfo);
-                    initFieldFill(FieldFill.UPDATE, clazz, tableFieldInfo);
-                    break;
+        if (CollectionUtils.isNotEmpty(tableFieldInfos)) {
+            for (TableFieldInfo tableFieldInfo : tableFieldInfos) {
+                FieldFill fieldFill = tableFieldInfo.getFieldFill();
+                if (null == fieldFill || FieldFill.DEFAULT.equals(fieldFill)) {
+                    continue;
+                }
+                switch (fieldFill) {
+                    case INSERT:
+                        initFieldFill(FieldFill.INSERT, clazz, tableFieldInfo);
+                        break;
+                    case UPDATE:
+                        initFieldFill(FieldFill.UPDATE, clazz, tableFieldInfo);
+                        break;
+                    case INSERT_UPDATE:
+                        initFieldFill(FieldFill.INSERT, clazz, tableFieldInfo);
+                        initFieldFill(FieldFill.UPDATE, clazz, tableFieldInfo);
+                        break;
+                }
             }
         }
     }

+ 68 - 0
src/test/java/com/baomidou/mybatisplus/test/h2/H2MetaObjAndVersionAndOptLockTest.java

@@ -8,6 +8,9 @@ import java.sql.Statement;
 import java.text.SimpleDateFormat;
 import java.util.Calendar;
 import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 import javax.sql.DataSource;
 
@@ -22,6 +25,7 @@ import org.springframework.web.context.support.AnnotationConfigWebApplicationCon
 
 import com.baomidou.mybatisplus.mapper.Condition;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.plugins.Page;
 import com.baomidou.mybatisplus.test.h2.config.DBConfig;
 import com.baomidou.mybatisplus.test.h2.config.MybatisConfigMetaObjOptLockConfig;
 import com.baomidou.mybatisplus.test.h2.entity.mapper.H2UserVersionAndLogicDeleteMapper;
@@ -192,4 +196,68 @@ public class H2MetaObjAndVersionAndOptLockTest extends H2Test {
         H2UserVersionAndLogicDeleteEntity userFromDB = userMapper.selectById(user.getId());
         Assert.assertNull(userFromDB);
     }
+
+    @Test
+    public void testInsertMy() {
+        String name = "自定义insert";
+        int version = 1;
+        int row = userMapper.myInsertWithNameVersion(name, version);
+        Assert.assertEquals(1, row);
+    }
+
+    @Test
+    public void testInsertObjectWithParam() {
+        String name = "自定义insert带Param注解";
+        int version = 1;
+        H2UserVersionAndLogicDeleteEntity user = new H2UserVersionAndLogicDeleteEntity();
+        user.setName(name);
+        user.setVersion(version);
+        int row = userMapper.myInsertWithParam(user);
+        Assert.assertEquals(1, row);
+    }
+    @Test
+    public void testInsertObjectWithoutParam() {
+        String name = "自定义insert带Param注解";
+        int version = 1;
+        H2UserVersionAndLogicDeleteEntity user = new H2UserVersionAndLogicDeleteEntity();
+        user.setName(name);
+        user.setVersion(version);
+        int row = userMapper.myInsertWithoutParam(user);
+        Assert.assertEquals(1, row);
+    }
+
+    @Test
+    public void testUpdateMy() {
+        Long id = 10087L;
+        H2UserVersionAndLogicDeleteEntity user = new H2UserVersionAndLogicDeleteEntity();
+        user.setId(id);
+        user.setName("myUpdate");
+        user.setVersion(1);
+        userMapper.insert(user);
+
+        H2UserVersionAndLogicDeleteEntity dbUser = userMapper.selectById(id);
+        Assert.assertNotNull(dbUser);
+        Assert.assertEquals("myUpdate", dbUser.getName());
+
+        Assert.assertEquals(1, userMapper.myUpdateWithNameId(id, "updateMy"));
+
+        dbUser = userMapper.selectById(id);
+        Assert.assertNotNull(dbUser);
+        Assert.assertEquals("updateMy", dbUser.getName());
+        Assert.assertEquals(1, user.getVersion().intValue());
+    }
+
+
+    @Test
+    public void testCondition() {
+        Page<H2UserVersionAndLogicDeleteEntity> page = new Page<>(1, 3);
+        Map<String, Object> condition = new HashMap<>();
+        condition.put("test_type", 1);
+        page.setCondition(condition);
+        List<H2UserVersionAndLogicDeleteEntity> pageResult = userMapper.selectPage(page, new EntityWrapper<H2UserVersionAndLogicDeleteEntity>());
+        for (H2UserVersionAndLogicDeleteEntity u : pageResult) {
+            System.out.println(u);
+        }
+
+    }
 }

+ 1 - 1
src/test/java/com/baomidou/mybatisplus/test/h2/H2UserAddrJoinTest.java

@@ -62,7 +62,7 @@ public class H2UserAddrJoinTest extends H2Test {
 
     @Test
     public void testJoinTableWithPagination() {
-        List<H2Addr> addrList = userMapper.getAddrListByUserId(101L, new Page<H2Addr>(0, 3));
+        List<H2Addr> addrList = userMapper.getAddrListByUserIdPage(101L, new Page<H2Addr>(0, 3));
         Assert.assertEquals(3, addrList.size());
     }
 

+ 16 - 2
src/test/java/com/baomidou/mybatisplus/test/h2/H2UserTest.java

@@ -356,12 +356,27 @@ public class H2UserTest extends H2Test {
 
     @Test
     public void testInsertMy() {
-        String name = "QiPa";
+        String name = "自定义insert";
         int version = 1;
         int row = userService.myInsert(name, version);
         Assert.assertEquals(1, row);
     }
 
+    @Test
+    public void testInsertObjectWithParam() {
+        String name = "自定义insert带Param注解";
+        int version = 1;
+        int row = userService.myInsertWithParam(name, version);
+        Assert.assertEquals(1, row);
+    }
+    @Test
+    public void testInsertObjectWithoutParam() {
+        String name = "自定义insert带Param注解";
+        int version = 1;
+        int row = userService.myInsertWithoutParam(name, version);
+        Assert.assertEquals(1, row);
+    }
+
     @Test
     public void testUpdateMy() {
         Long id = 10087L;
@@ -381,7 +396,6 @@ public class H2UserTest extends H2Test {
         Assert.assertNotNull(dbUser);
         Assert.assertEquals("updateMy", dbUser.getName());
         Assert.assertEquals(1, user.getVersion().intValue());
-
     }
 
 

+ 2 - 2
src/test/java/com/baomidou/mybatisplus/test/h2/config/MybatisPlusConfig.java

@@ -11,7 +11,6 @@ import org.springframework.context.annotation.Configuration;
 import org.springframework.core.io.ResourceLoader;
 
 import com.baomidou.mybatisplus.MybatisConfiguration;
-import com.baomidou.mybatisplus.MybatisXMLLanguageDriver;
 import com.baomidou.mybatisplus.entity.GlobalConfiguration;
 import com.baomidou.mybatisplus.mapper.LogicSqlInjector;
 import com.baomidou.mybatisplus.plugins.OptimisticLockerInterceptor;
@@ -39,7 +38,8 @@ public class MybatisPlusConfig {
 //        sqlSessionFactory.setConfigLocation(resourceLoader.getResource("classpath:mybatis-config.xml"));
         sqlSessionFactory.setTypeAliasesPackage("com.baomidou.mybatisplus.test.h2.entity.persistent");
         MybatisConfiguration configuration = new MybatisConfiguration();
-        configuration.setDefaultScriptingLanguage(MybatisXMLLanguageDriver.class);
+//        configuration.setDefaultScriptingLanguage(MybatisXMLLanguageDriver.class);
+//        org.apache.ibatis.session.Configuration configuration = new org.apache.ibatis.session.Configuration();
         configuration.setJdbcTypeForNull(JdbcType.NULL);
         sqlSessionFactory.setConfiguration(configuration);
         PaginationInterceptor pagination = new PaginationInterceptor();

+ 10 - 1
src/test/java/com/baomidou/mybatisplus/test/h2/entity/mapper/H2UserMapper.java

@@ -32,7 +32,7 @@ public interface H2UserMapper extends SuperMapper<H2User> {
             "select a.addr_id as addrId, a.addr_name as addrName from h2address a" +
                     " join h2user u on u.test_id=a.test_id and u.test_id=#{userId}"
     )
-    List<H2Addr> getAddrListByUserId(@Param("userId") Long userId, Page<H2Addr> page);
+    List<H2Addr> getAddrListByUserIdPage(@Param("userId") Long userId, Page<H2Addr> page);
 
     @Insert(
             "insert into h2user(name,version) values(#{name},#{version})"
@@ -44,4 +44,13 @@ public interface H2UserMapper extends SuperMapper<H2User> {
     )
     int myUpdateWithNameId(@Param("id") Long id, @Param("name") String name);
 
+
+    @Insert(
+            "insert into h2user(name,version) values( #{user1.name}, #{user1.version})"
+    )
+    int myInsertWithParam(@Param("user1") H2User user1);
+    @Insert(
+            "insert into h2user(name,version) values( #{name}, #{version})"
+    )
+    int myInsertWithoutParam(H2User user1);
 }

+ 41 - 0
src/test/java/com/baomidou/mybatisplus/test/h2/entity/mapper/H2UserVersionAndLogicDeleteMapper.java

@@ -1,6 +1,15 @@
 package com.baomidou.mybatisplus.test.h2.entity.mapper;
 
+import java.util.List;
+
+import org.apache.ibatis.annotations.Insert;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+import org.apache.ibatis.annotations.Update;
+
 import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.baomidou.mybatisplus.test.h2.entity.persistent.H2Addr;
 import com.baomidou.mybatisplus.test.h2.entity.persistent.H2UserVersionAndLogicDeleteEntity;
 
 /**
@@ -13,4 +22,36 @@ import com.baomidou.mybatisplus.test.h2.entity.persistent.H2UserVersionAndLogicD
  */
 public interface H2UserVersionAndLogicDeleteMapper extends BaseMapper<H2UserVersionAndLogicDeleteEntity> {
 
+
+    @Select(
+            "select a.addr_id as addrId, a.addr_name as addrName from h2address a" +
+                    " join h2user u on u.test_id=a.test_id and u.test_id=#{userId}"
+    )
+    List<H2Addr> getAddrListByUserId(@Param("userId") Long userId);
+
+    @Select(
+            "select a.addr_id as addrId, a.addr_name as addrName from h2address a" +
+                    " join h2user u on u.test_id=a.test_id and u.test_id=#{userId}"
+    )
+    List<H2Addr> getAddrListByUserIdPage(@Param("userId") Long userId, Page<H2Addr> page);
+
+    @Insert(
+            "insert into h2user(name,version) values(#{name},#{version})"
+    )
+    int myInsertWithNameVersion(@Param("name") String name, @Param("version") int version);
+
+    @Update(
+            "update h2user set name=#{name} where test_id=#{id}"
+    )
+    int myUpdateWithNameId(@Param("id") Long id, @Param("name") String name);
+
+
+    @Insert(
+            "insert into h2user(name,version) values( #{user1.name}, #{user1.version})"
+    )
+    int myInsertWithParam(@Param("user1") H2UserVersionAndLogicDeleteEntity user1);
+    @Insert(
+            "insert into h2user(name,version) values( #{name}, #{version})"
+    )
+    int myInsertWithoutParam(H2UserVersionAndLogicDeleteEntity user1);
 }

+ 4 - 0
src/test/java/com/baomidou/mybatisplus/test/h2/service/IH2UserService.java

@@ -30,5 +30,9 @@ public interface IH2UserService extends IService<H2User> {
 
     int myInsert(String name, int version);
 
+    int myInsertWithParam(String name, int version);
+
+    int myInsertWithoutParam(String name, int version);
+
     int myUpdate(Long id, String name);
 }

+ 16 - 0
src/test/java/com/baomidou/mybatisplus/test/h2/service/impl/H2UserServiceImpl.java

@@ -42,6 +42,22 @@ public class H2UserServiceImpl extends ServiceImpl<H2UserMapper, H2User> impleme
         return userMapper.myInsertWithNameVersion(name, version);
     }
 
+    @Override
+    public int myInsertWithParam(String name, int version) {
+        H2User user = new H2User();
+        user.setName(name);
+        user.setVersion(version);
+        return userMapper.myInsertWithParam(user);
+    }
+
+    @Override
+    public int myInsertWithoutParam(String name, int version) {
+        H2User user = new H2User();
+        user.setName(name);
+        user.setVersion(version);
+        return userMapper.myInsertWithoutParam(user);
+    }
+
     @Override
     public int myUpdate(Long id, String name) {
         return userMapper.myUpdateWithNameId(id, name);