mybatis plus 查询忽略逻辑删除字段
时间: 2023-09-25 21:13:26 浏览: 454
要在MyBatis Plus中查询时忽略逻辑删除字段,你可以按照以下步骤进行配置:
1. 在你的实体类的逻辑删除字段上添加`@TableField(select = false)`注解。这将告诉MyBatis Plus在查询时不包含该字段。
例如:
```java
@TableField(select = false)
private Integer deleted;
```
2. 在你的查询方法中使用`Wrapper`对象,并通过`select`方法指定需要查询的字段。
例如:
```java
Wrapper<Entity> wrapper = new QueryWrapper<Entity>().select("other_field1", "other_field2");
List<Entity> results = entityMapper.selectList(wrapper);
```
这样,查询结果中将不包含逻辑删除字段。
请注意,以上步骤是针对MyBatis Plus的逻辑删除实现。你需要根据自己的实际情况和使用的版本进行相应的配置。
来源:https://www.cnblogs.com/duhuo/p/14187630.html
来源:https://www.jianshu.com/p/25f06f8e85dd
来源:https://www.jianshu.com/p/4c9f8de7d163
相关问题
mybatis plus 逻辑删除
MyBatis Plus提供了逻辑删除的功能,可以在删除、查询和更新操作中自动加上条件来过滤已删除的数据。在使用MyBatis Plus进行逻辑删除时,需要在配置文件中设置相关参数。在yml配置文件中,需要设置全局逻辑删除的实体字段名、逻辑已删除值和逻辑未删除值。开启逻辑删除功能后,MP会自动在删除、查询和更新操作中加上条件deleted=0,只对未删除的数据进行操作。同时,建议在建表时对deleted字段设置默认限制,默认为0(未删除),插入数据时这个值可以不用设置。自己在xml文件中定义的接口方法不会自动开启逻辑删除功能,需要自己维护逻辑删除功能。对于查找操作,可以通过追加where条件来过滤掉已删除数据,使用wrapper.entity生成的where条件会忽略该字段。所以,MyBatis Plus的逻辑删除功能使用起来非常简单,并且提高了数据的记录价值。
mybatis plus 设置逻辑删除配置后,再次查询时怎么可以查询已删除和未删除的数据呢
在MyBatis Plus中,当使用逻辑删除配置后,默认情况下被标记为删除的数据是不会被查询出来的。如果需要查询已删除和未删除的数据,可以通过关闭逻辑删除的功能来实现。
关闭逻辑删除的功能需要在实体类中加上`@TableLogic`注解,并将`value`属性设置为`"0"`,表示逻辑未删除状态的值。例如:
```java
import com.baomidou.mybatisplus.annotation.TableLogic;
public class Entity {
private Long id;
private String name;
@TableLogic(value = "0")
private Integer deleted; // 逻辑删除字段
// getter和setter方法省略
}
```
这样,已经开启了逻辑删除功能的MyBatis Plus会自动忽略标记为删除的数据,而关闭逻辑删除功能后,就可以查询所有未被物理删除的数据(包括标记为删除的数据)了。
查询方式与未开启逻辑删除功能时一样,例如:
```java
// 导入QueryWrapper类
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
// 创建QueryWrapper对象
QueryWrapper<Entity> queryWrapper = new QueryWrapper<>();
// 执行查询
List<Entity> entities = entityMapper.selectList(queryWrapper);
```
这样会查询出所有未被物理删除的数据(包括标记为删除的数据)。需要注意的是,如果数据量较大,可能会对系统性能造成影响,因此建议根据实际情况酌情使用。