聚美优品网站建设项目规划书,元气森林网络营销方式,网站建设报价表模板,陈铭生我来找你了配置逻辑删除
在bootstrap.yaml中加入逻辑删除配置
mybatis-plus:global-config:db-config:logic-delete-field: isDeleted # 全局逻辑删除的实体字段名(since 3.3.0,配置后可以忽略不配置步骤2)logic-delete-value: true # 逻辑已删除值(默认为 1)logic-not-delete-value: …配置逻辑删除
在bootstrap.yaml中加入逻辑删除配置
mybatis-plus:global-config:db-config:logic-delete-field: isDeleted # 全局逻辑删除的实体字段名(since 3.3.0,配置后可以忽略不配置步骤2)logic-delete-value: true # 逻辑已删除值(默认为 1)logic-not-delete-value: false # 逻辑未删除值(默认为 0)以及在对应的实体类继承public class Entity extends MyBatisPlusBaseModelEntity后就实现了逻辑删除这时候使用mybatis-plus进行CRUD会自动带上isDelete false。如果这时候我就是要查那些被删除的记录虽然这种情况比较少见不过有些时候可能确实有这种需求。
使用 Wrapper 自定义 SQL
通过尝试发现使用使用 Wrapper 自定义 SQL不会带上isDelete false。
版本要求确保你的项目中使用的 mybatis-plus 版本至少为 3.0.7以支持自定义 SQL 功能。参数命名在自定义 SQL 时传递 Wrapper 对象作为参数时参数名必须为 ew或者使用注解 Param(Constants.WRAPPER) 明确指定参数为 Wrapper 对象。使用 ${ew.customSqlSegment}在 SQL 语句中使用 ${ew.customSqlSegment} 来引用 Wrapper 对象生成的 SQL 片段。不支持基于 entity 的 where 语句自定义 SQL 时Wrapper 对象不会基于实体类自动生成 where 子句你需要手动编写完整的 SQL 语句。
wrapper只能进行条件查询也就是说不能筛选select的字段默认是select * from table
example
在Entity的Mapper中加入自定义的SQL
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.apache.ibatis.annotations.Param;public interface UserMapper extends BaseMapperUser {Select(SELECT * FROM user ${ew.customSqlSegment})ListUser selectByCustomSql(Param(Constants.WRAPPER) WrapperUser wrapper);
}特别注意的是如果Entity中有有json转化的话得加result import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.apache.ibatis.annotations.Param;public interface UserMapper extends BaseMapperUser {Select(SELECT * FROM user ${ew.customSqlSegment})Results({Result(column extra_info, property extraInfo, typeHandler FastjsonTypeHandler.class)})ListUser selectByCustomSql(Param(Constants.WRAPPER) WrapperUser wrapper);
}使用方法
Resource
private UserMapper userMapper;QueryWrapperUser queryWrapper new QueryWrapper();
queryWrapper.eq(name, 张三);ListUser userList userMapper.selectByCustomSql(queryWrapper);使用 Wrapper 自定义 SQL