mybatis plus忽略逻辑删除
时间: 2024-11-06 15:10:10 浏览: 63
MyBatis Plus是一款基于MyBatis的持久层框架增强工具,它提供了一种便捷的方式来操作数据库。如果你想在MyBatis Plus中忽略逻辑删除字段的功能,你可以通过配置来实现。
1. 首先,在全局配置文件(如application.yml或application.properties)中,找到`global-config`部分,然后添加以下内容:
```yaml
mybatis-plus:
global-config:
db-config:
logic-delete-value: -1 // 将逻辑删除值改为其他非默认值,比如-1表示未删除
logic-not-delete-value: 0 // 将逻辑未删除值改为其他非默认值,比如0表示正常
```
2. 如果你想让某个实体类忽略逻辑删除,可以在实体类上使用`@TableLogic`注解,并设置`unDeleteField`属性:
```java
@TableLogic(
value = "status", // 逻辑删除字段名
unDeleteField = true // 表示该字段在查询时不参与逻辑判断
)
private Integer status;
```
通过以上设置,当你查询数据时,即使逻辑删除字段为指定的未删除值,MyBatis Plus也不会将其视为已删除记录。但是请注意,这仅适用于查询,更新操作依然会按照逻辑删除字段的规则处理。
相关问题
mybatis plus 忽略逻辑删除
Mybatis Plus是一个基于MyBatis的ORM框架增强工具,它简化了数据库操作,并提供了一些便利的功能。如果你想在Mybatis Plus中忽略某个字段的逻辑删除(通常是通过一个布尔类型的字段如`is_delete`来控制数据是否已删除),你可以这样做:
1. **全局配置**:
在全局配置文件(例如`GlobalConfig.java`或`mybatis-plus.properties`)中,添加如下设置:
```java
// 如果你想所有实体都默认不执行逻辑删除
.mybatisplus.global-config.default-dynamic-delete = false
// 或者针对特定表,可以这样指定
data tablename="your_table_name", default-dynamic-delete="false"
```
2. **实体类注解**:
对于需要忽略逻辑删除的实体类,可以在相应字段上使用注解,比如`@TableLogic(value = "false")`,其中`value`属性值为`true`表示启用逻辑删除,`false`则表示忽略。
3. **动态SQL**:
你也可以在编写SQL查询时直接避免`is_delete`字段,Mybatis Plus会自动过滤掉逻辑删除的数据,除非你在查询条件中明确加入这个字段。
```java
// 示例:查询时不考虑逻辑删除
List<User> users = userMapper.selectList(null);
```
mybatis plus 查询忽略逻辑删除字段
要在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
阅读全文