当前使用版本(必填,否则不予处理)

3.5.3.2

该问题是如何引起的?(确定最新版也有问题再提!!!)

借用 https://github.com/baomidou/mybatis-plus/issues/4371 select 一列,如果列为空时,返回的list中会有null对象

对于返回结果有些疑问: 在Java 中,一个实体对应了数据库中的一条行记录,mp 是否应当返回age为null的对象集合,eg:[{"id":null, "name":null, "age":null, "email":null}, {"id":null, "name":null, "age":null, "email":null}, {"id":null, "name":null, "age":28, "email":null}, {"id":null, "name":null, "age":21, "email":null}, {"id":null, "name":null, "24":null, "email":null}]而非返回对象为null 的集合([null, null, {"id":null, "name":null, "age":28, "email":null}, {"id":null, "name":null, "age":21, "email":null}, {"id":null, "name":null, "24":null, "email":null}])。

重现步骤(如果有就写完整)

下载官方demo:

使用 mybatis-plus-sample-quickstart

修改data-h2的sql:

`DELETE FROM user;

INSERT INTO user (id, name, age, email) VALUES (1, 'Jone', null, 'test1@baomidou.com'), (2, 'Jack', null, 'test2@baomidou.com'), (3, 'Tom', 28, 'test3@baomidou.com'), (4, 'Sandy', 21, 'test4@baomidou.com'), (5, 'Billie', 24, 'test5@baomidou.com');`

运行测试代码:

`package com.baomidou.mybatisplus.samples.quickstart;

import com.baomidou.mybatisplus.samples.quickstart.entity.User; import com.baomidou.mybatisplus.samples.quickstart.service.IUserService; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner;

import javax.annotation.Resource; import java.util.List; import java.util.stream.Collectors;

https://github.com/RunWith(SpringRunner.class) https://github.com/SpringBootTest public class SampleTest { @Resource private IUserService userService; @Test public void testPage() { List userList = userService.lambdaQuery().select(User::getAge).list(); List userAgeList = userList.stream().map(User::getAge).collect(Collectors.toList()); } }`

报错信息

Comment From: miemieYaho

数据封装是mybatis的事