Spring Boot MyBatis-Plus 查询逻辑删除的数据

MyBatis-Plus Spring Boot About 784 words

需求

MyBatis-Plus全局配置了逻辑删除,所有SQL都会自动带上逻辑删除的where,现在有一张表需要查询出所有数据(包括逻辑删除的数据)。

说明

MyBatis-Plus官方文档中有一段附录,表示其不提供配置去单独去掉这个限制。

附录:
逻辑删除是为了方便数据恢复和保护数据本身价值等等的一种方案,但实际就是删除。
如果你需要频繁查出来看就不应使用逻辑删除,而是以一个状态去表示。

解决方法

将实体类中的逻辑删除字段区别于全局配置中的字段名,再使用@TableField映射到数据库中的字段。

缺点:这张表其他使用到MyBatis-Plus自动过滤逻辑删除数据的地方,需要手动加上where条件,MyBatis-Plus不会再自动加上where条件。

相关代码

全局配置

mybatis-plus:
  global-config:
    db-config:
      logic-delete-field: isDel # 全局逻辑删除的实体字段名
      logic-delete-value: 1 # 逻辑已删除值(默认为 1)
      logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)

实体类

@TableName(value = "my_user", autoResultMap = true)
public class MyUser {

    @TableId(type = IdType.ASSIGN_ID)
    private String id;

    private String name;

    @TableField(value = "is_del")
    private String deleted;

}

备注

xml或者@Select也同样可以解决。

Views: 143 · Posted: 2024-05-22

————        END        ————

Give me a Star, Thanks:)

https://github.com/fendoudebb/LiteNote

扫描下方二维码关注公众号和小程序↓↓↓

扫描下方二维码关注公众号和小程序↓↓↓


Today On History
Browsing Refresh