/** * 创建条件构造器时传入实体对象 */ @Test public void selectByWrapperEntity(){ User whereUser = new User(); whereUser.setName("Jack"); whereUser.setAge(20); QueryWrapper<User> queryWrapper = new QueryWrapper<User>(whereUser); List<User> userList = userMapper.selectList(queryWrapper); userList.forEach(System.out::println); }
##### SQL日志执行如下
==> Preparing: SELECT id,name,age,email FROM user WHERE id=? AND name=? AND age=?
==> Parameters: 0(Long), Jack(String), 20(Integer)
<== Total: 0
我怀疑是你实体类中的主键用的基本数据类型,基本数据类型的成员变量,例如long的默认值是0。所以会出现你那么现象,换成基本数据类型对应的包装类即可,因为是引用类型,默认值为null。
估计你User实体类的主键用的基本类型吧,默认会带默认值0的,可以换为包装类型试试