int update(@Param(Constants.ENTITY) T entity, @Param(Constants.WRAPPER) Wrapper<T> updateWrapper);
错误使用方式:
LamdaUpdateWrapper<User> updateWrapper = new LamdaUpdateWrapper<>();
updateWrapper.set(User::getAge,18);
User user = new User();
user.setName("Tom");
Integer rows = userMapper.update(user, updateWrapper);
entity作为更新条件,updateWrapper写set内容,看上去符合如下图中的官方代码的注释含义,但是实际会报错:Proxy ERROR: Join internal error: update query has no where clause
正确使用方式:
1、entity作为要更新的内容,updateWrapper写where条件
LamdaUpdateWrapper<User> updateWrapper = new LamdaUpdateWrapper<>();
updateWrapper.eq(User::getName,"Tom");
User user = new User();
user.setAge(18);
Integer rows = userMapper.update(user, updateWrapper);
2、entity为null,更新内容和条件都写到updateWrapper
LamdaUpdateWrapper<User> updateWrapper = new LamdaUpdateWrapper<>();
updateWrapper.eq(User::getName,"Tom").set(User::getAge, 18);
Integer rows = userMapper.update(null, updateWrapper);