miemie há 4 anos atrás
pai
commit
1d5926b055

+ 2 - 1
TEMP_CHANGELOG.md

@@ -3,9 +3,10 @@
 - fix: `MetaObjectHandler` 重载错误(解决办法是参数位置对调),填充值在泛型上支持字段类型的子类
 - feat: mybatis up to `3.5.5`, mybatis-spring up to `2.0.5`
 - feat: jsqlparser up to `3.2`
-- feat: 新增 `MybatisParameterHandler` 废弃老的 `MybatisDefaultParameterHandler`
+- feat: 新增 `MybatisParameterHandler`, 废弃 `MybatisDefaultParameterHandler`
 - feat: 分页插件加入 GBase,ClickHouse,oscar,OceanBase 数据库连接自动识别的支持
 - feat: Wrapper 新增api `not(boolean condition, Consumer<Param> consumer)`
 - feat: 新增 `MybatisPlusInterceptor` 解决 多租户和分页 插件一级和二级缓存不正确问题
 - feat: 新分页插件优化 size<0 时继续拼接 orderBy
 - feat: 新增 `IdentifierGenerator` 一个实现类 `ImadcnIdentifierGenerator`
+- fix: chainWrapper#func 强转异常

+ 39 - 0
mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/chainwrapper/ChainWrapperTest.java

@@ -0,0 +1,39 @@
+package com.baomidou.mybatisplus.test.chainwrapper;
+
+import com.baomidou.mybatisplus.test.BaseDbTest;
+import org.junit.jupiter.api.Test;
+
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * @author miemie
+ * @since 2020-06-23
+ */
+public class ChainWrapperTest extends BaseDbTest<EntityMapper> {
+
+    @Test
+    void test() {
+        final String id = "id";
+        doTest(i -> i.queryChain()
+            .func(j -> j.isNotNull(id))
+            .and(j -> j.isNotNull(id))
+            .or(j -> j.isNotNull(id))
+            .nested(j -> j.isNotNull(id))
+            .not(j -> j.isNull(id))
+            .list());
+    }
+
+    @Override
+    protected String tableDataSql() {
+        return "insert into entity(id,name) values(1,'1'),(2,'2');";
+    }
+
+    @Override
+    protected List<String> tableSql() {
+        return Arrays.asList("drop table if exists entity", "CREATE TABLE IF NOT EXISTS entity (" +
+            "id BIGINT NOT NULL," +
+            "name VARCHAR(30) NULL DEFAULT NULL," +
+            "PRIMARY KEY (id))");
+    }
+}

+ 18 - 0
mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/chainwrapper/Entity.java

@@ -0,0 +1,18 @@
+package com.baomidou.mybatisplus.test.chainwrapper;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author miemie
+ * @since 2020-06-23
+ */
+@Data
+public class Entity implements Serializable {
+    private static final long serialVersionUID = 6962439201546719734L;
+
+    private Long id;
+
+    private String name;
+}

+ 16 - 0
mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/chainwrapper/EntityMapper.java

@@ -0,0 +1,16 @@
+package com.baomidou.mybatisplus.test.chainwrapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.conditions.query.QueryChainWrapper;
+import com.baomidou.mybatisplus.extension.toolkit.ChainWrappers;
+
+/**
+ * @author miemie
+ * @since 2020-06-23
+ */
+public interface EntityMapper extends BaseMapper<Entity> {
+
+    default QueryChainWrapper<Entity> queryChain() {
+        return ChainWrappers.queryChain(this);
+    }
+}