当前位置: 首页 > news >正文

温州做网站公司哪家好网页游戏排行榜人气

温州做网站公司哪家好,网页游戏排行榜人气,广州建设工程交易中心专题片,常州seo收费文章目录 如何让mybatis-plus的逻辑删除注解TableLogic临时失效1. 场景复现1.1 controller代码1.2 service层代码1.3 entity代码 2. 问题分析3. 解决方案3.1 说明3.2 核心代码3.3 service方法对应修改为3.4 运行结果 如何让mybatis-plus的逻辑删除注解TableLogic临时失效 1. 场… 文章目录 如何让mybatis-plus的逻辑删除注解TableLogic临时失效1. 场景复现1.1 controller代码1.2 service层代码1.3 entity代码 2. 问题分析3. 解决方案3.1 说明3.2 核心代码3.3 service方法对应修改为3.4 运行结果 如何让mybatis-plus的逻辑删除注解TableLogic临时失效 1. 场景复现 1.1 controller代码 GetMapping(/getSpacexTable) public String getSpacexTable(){ListSpacexTable list spacexTableService.queryAll();return JSON.toJSONString(list); }1.2 service层代码 Override public ListSpacexTable queryAll() {ListSpacexTable list list();return list; }1.3 entity代码 Data TableName(value spacex_table) public class SpacexTable implements Serializable {TableIdprivate String id;private String name;TableLogicprivate Integer isDel;TableField(exist false)private static final long serialVersionUID 1L; }2. 问题分析 当我们正常调用接口时sql查询日志为 SELECT id,name,is_del FROM spacex_table WHERE is_del0数据库数据记录为 接口调用结果为 [{id:1,isDel:0,name:小张},{id:3,isDel:0,name:小杨}]可见逻辑删除注解已生效is_del1的小李没有查询出来 3. 解决方案 3.1 说明 我们让当前查询的逻辑删除失效时不应影响其他查询活动所以我们我们需要在线程上打上标识区分是否执行逻辑删除因为使用了mybatis-plus框架所以可以通过拦截器来实现在适当方法处将sql语句中的逻辑删除替换掉即可 3.2 核心代码 Slf4j Component // 拦截StatementHandler的prepare方法改变编译的SQL语句 Intercepts({Signature(type StatementHandler.class, method prepare, args {Connection.class, Integer.class})}) public class LogicDeletenterceptor implements Interceptor {// 通过ThreadLocal给当前线程打上标识public static ThreadLocalBoolean logicDelete new ThreadLocal();Overridepublic Object intercept(Invocation invocation) throws Throwable {log.info(SqlModifyInterceptor( logicDelete.get() ));// 判断线程标识if (!Boolean.FALSE.equals(logicDelete.get())) {return invocation.proceed();}StatementHandler statementHandler PluginUtils.realTarget(invocation.getTarget());MetaObject metaObject SystemMetaObject.forObject(statementHandler);MappedStatement mappedStatement (MappedStatement) metaObject.getValue(delegate.mappedStatement);if (!SqlCommandType.SELECT.equals(mappedStatement.getSqlCommandType())) {return invocation.proceed();}BoundSql boundSql (BoundSql) metaObject.getValue(delegate.boundSql);String sql boundSql.getSql();log.info(origin sql: sql);// TODO 在这里替换字段改成不影响结果的条件即可sql sql.replace(is_del0,11).replace(del_number0, 11);metaObject.setValue(delegate.boundSql.sql,sql);log.info(modify sql sql);return invocation.proceed();}Overridepublic Object plugin(Object target) {return Plugin.wrap(target, this);}Overridepublic void setProperties(Properties properties) {} }3.3 service方法对应修改为 Override public ListSpacexTable queryAll() {// 开启逻辑删除失效 LogicDeletenterceptor.logicDelete.set(false);ListSpacexTable list list();// 关闭逻辑删除失效LogicDeletenterceptor.logicDelete.remove();return list; }3.4 运行结果 sql查询日志为 SELECT id,name,is_del FROM spacex_table WHERE 11接口调用结果为 [{id:1,isDel:0,name:小张},{id:2,isDel:1,name:小李},{id:3,isDel:0,name:小杨}]可见逻辑删除is_del1的小李也被查询出来了
http://www.hkea.cn/news/14415704/

相关文章:

  • 建设电子商务网站步骤前端网站开发总结
  • 英文网站建设szjijiewordpress变成圆角
  • 网站建站 外贸腾讯云wordpress安装教程
  • 包装东莞网站建设0769平面设计公司收费标准
  • 微软手机做网站服务器吗做网页制作
  • 网站制作公司天强科技潍坊网站建设工作室
  • 网站模板如何修改中国建设银行河北省门户网站
  • 乐昌北京网站建设印象笔记配置到wordpress
  • 河南英文网站建设公司wordpress安装完成访问不了
  • 建设网站需要哪些语言200做网站
  • 动漫网站网页设计哈尔滨网页制作人才招聘
  • 网站建设到那可以学习0317网站建设
  • 网站备案域名更改网页页面下载
  • 石家庄网站建设.神鹿网络人力资源外包灵活用工
  • 备案网站服务内容最近中文字幕2018免费版2019
  • 网站建设又叫什么高端营销网站定制
  • 广州市官网网站建设多少钱wordpress 导航 图片
  • 致力于做服务更好的网站建设公司贵阳网站建设公司哪家好
  • 腾龙官方网站做号软件wordpress 电商 开发
  • 网站架构企业收费标准夏津网站建设电话
  • 网站开发与建设个人总结龙岩融胤网络科技有限公司
  • 网站建设合同 域名html5企业网站带后台
  • 网站建设的毕业设计成果广告sem是什么意思
  • 建设监理收录网站搜索引擎推广方法
  • 成都网站建设冠辰重庆响应式网站多少钱
  • 做阿里国际网站要收费吗广州关于进一步
  • 精品课程 网站建设质量wordpress百度分享插件下载
  • 7天酒店网站建设优势html个人简历完整代码
  • 烟台广告公司网站建设重庆妇科医院排名前三
  • 微服务网站开发腾讯服务器做网站