为了账号安全,请及时绑定邮箱和手机立即绑定

创建条件构造器传入实体对象时,没有设置主键值,查询SQL日志显示主键值为0

/**
 * 创建条件构造器时传入实体对象
 */
@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

正在回答

2 回答

我怀疑是你实体类中的主键用的基本数据类型,基本数据类型的成员变量,例如long的默认值是0。所以会出现你那么现象,换成基本数据类型对应的包装类即可,因为是引用类型,默认值为null。

0 回复 有任何疑惑可以回复我~

估计你User实体类的主键用的基本类型吧,默认会带默认值0的,可以换为包装类型试试

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

创建条件构造器传入实体对象时,没有设置主键值,查询SQL日志显示主键值为0

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信