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

2.1.3

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

做selectOne指定了列,但是列名和字段名不一致,查询结果字段为null 可是selectById就会返回字段列名不一致的值

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

String FIELD_FORBID_SQL_COLUMN = "status";

QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.select(User.FIELD_USER_ID_SQL_COLUMN, User.FIELD_FORBID_SQL_COLUMN, User.FIELD_VIP_LEVEL_SQL_COLUMN);
queryWrapper.eq(User.FIELD_USER_ID_SQL_COLUMN, dto.getId());
User user = userMapper.selectOne(queryWrapper);
boolean isNull = null == user.getForbid(); // true

报错信息

Comment From: qmdx

打印执行 sql 如果不一样请保持一致

Comment From: ChenHao96

那是需要给查询的列加别名?

Comment From: ChenHao96

Entity 给字段添加了 @TableField

String FIELD_FORBID_SQL_COLUMN = "status";

 @TableField(FIELD_FORBID_SQL_COLUMN )
 private Boolean forbid;

selectById 可以查询出结果, selectOne boolean isNull = null == user.getForbid(); // true