Mybatis-plus中@TableLogic在查询中如何失效
时间: 2024-01-21 08:18:44 浏览: 1228
Mybatis plus中使用in查询出错如何解决
Mybatis-plus中的@TableLogic注解用于标记逻辑删除字段,查询时默认会过滤掉被标记为删除的数据。如果要在查询时让@TableLogic失效,可以通过以下两种方式实现:
1.在查询条件中指定@TableLogic注解的字段值
例如,假设标记逻辑删除的字段名为deleted,查询时可以通过以下方式让@TableLogic失效:
```java
// 创建查询条件构造器
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
// 在查询条件中指定deleted字段为0
queryWrapper.eq("deleted", 0);
// 执行查询操作
List<User> userList = userMapper.selectList(queryWrapper);
```
2.通过设置全局配置
在Mybatis-plus的全局配置中可以设置逻辑删除全局开关和逻辑删除字段名,可以通过设置逻辑删除全局开关为false或设置逻辑删除字段名为空字符串来让@TableLogic失效。例如:
```java
// 创建全局配置对象
GlobalConfig globalConfig = new GlobalConfig();
// 关闭逻辑删除全局开关
globalConfig.setLogicDelete(false);
// 或者设置逻辑删除字段名为空字符串
globalConfig.setLogicDeleteField("");
// 将全局配置对象设置到Mybatis-plus的SqlSessionFactory中
SqlSessionFactory sqlSessionFactory = new MybatisSqlSessionFactoryBuilder()
.build(inputStream, properties);
MybatisSqlSessionTemplate sqlSessionTemplate = new MybatisSqlSessionTemplate(sqlSessionFactory);
```
以上是让@TableLogic失效的两种方式,根据具体情况选择使用。
阅读全文