mybatisplus修改语句怎么忽略逻辑删除
时间: 2023-09-27 14:12:40 浏览: 693
MybatisPlus中的删除和逻辑删除及区别介绍
在 MyBatis-Plus 中,如果你想在修改语句中忽略逻辑删除,需要使用 UpdateWrapper 工具类来构建更新条件。具体来说,你可以使用 UpdateWrapper.lambdaUpdate 方法来创建一个 LambdaUpdateWrapper 对象,然后调用其 ignoreDeleted 方法来忽略逻辑删除。示例代码如下:
```
int result = userService.update(Wrappers.<User>lambdaUpdate()
.set(User::getName, "new name") // 设置新的用户名
.eq(User::getId, 1) // 查询用户ID为1的用户
.ignoreDeleted(true)); // 忽略逻辑删除
```
在这个示例中,我们使用了 lambdaUpdate 方法来创建一个 LambdaUpdateWrapper 对象,然后调用其 set 方法来设置新的用户名,eq 方法来添加查询条件,最后调用 ignoreDeleted 方法来忽略逻辑删除。在 ignoreDeleted 方法中,我们将参数设置为 true,表示要忽略逻辑删除。这样,在更新用户信息时,就可以忽略逻辑删除了。
需要注意的是,ignoreDeleted 方法只对 LambdaQueryWrapper 和 LambdaUpdateWrapper 有效,对其他类型的 Wrapper 无效。如果你使用的是其他类型的 Wrapper,可以通过设置条件构造器的 entity 属性来忽略逻辑删除,示例代码如下:
```
User user = new User();
user.setName("new name");
int result = userService.update(user, new UpdateWrapper<User>()
.eq("id", 1) // 查询用户ID为1的用户
.apply("is_deleted = 0")); // 忽略逻辑删除
```
在这个示例中,我们创建了一个 User 对象,并设置了新的用户名。然后,我们使用 UpdateWrapper 来构建更新条件,调用其 eq 方法来添加查询条件,最后调用 apply 方法来忽略逻辑删除。在 apply 方法中,我们直接写 SQL 语句来忽略逻辑删除,is_deleted 是逻辑删除的字段。这样,在更新用户信息时,也可以忽略逻辑删除了。
阅读全文