首页 > 作文

Mybatis重置Criteria的正确姿势分享

更新时间:2023-04-04 03:00:01 阅读: 评论:0

目录
mybatis重置criteria发现问题原因如下我们想重置查询条件怎么办?得出一个结论mybatis的criteria用法总结

mybatis重置criteria

开发中遇到mybatis生成的example通过调用createcriteria()来创建criteria并设置查询条件的情况。

但是需要换一个查询广州增城白水寨条件再次查询时发现再次调用该方法“无效果”。

看到大多数的做法是通过new一个新的example来查询,考虑到可能不是最好的或者最合理的做法,对此进行了简单研究。

发现问题原因如下肾结石疼痛怎么缓解

我们看下生成的exmaple的源码:

 public criteria createcriteria() {        criteria criteria = createcriteriainternal();        if (oredcriteria.size() == 0) {            oredcriteria.add(criteria);        }        return criteria;    }     protected criteria createcriteriainternal() {        criteria criteria = new criteria();        return criteria;    }

发现调用createcriteria(),虽然每次创建一个新的criteria对象但是只有

protected list<criteria> oredcriteria

这个列表长度为0时才会添加,进去。

查看映射的xml文件时发现,查询条件正是取自于oredcriteria。

只有调用or时才添加到该集合中

 public void or(criteria criteria) {        oredcriteria.add(criteria);    }

我们想重置查询条件怎么办?

两种方法:

一种是只清空example的oredcriteria属性。

那么可以通过example类中的getoredcriteria() 函数获取该列表后通过clear方法清空。

public list<criteria> getoredcriteria() {        return oredcriteria;    }上海滨海森林公园

另外一种更彻底的方法,直接调用example的clear() 方法,将exmple对象“重置”为初始状态。

  public void clear() {        oredcriteria.clear(); 昌黎黄金海岸天气       orderbyclau = null;        distinct = fal;        pageparam = null;    } 

得出一个结论

中招分数线

遇到问题,多看源码,多看官方文档。

mybatis的criteria用法总结

用一对多内敛查询的时候,有的老铁提出left join in 但是我和同事商讨结果是用代码写处各种list然后stream存到数据库中,这样一来把计算压力从数据库存入服务器,当并发量高了,这样做的好处就体现在性能方面了。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持www.887551.com。

本文发布于:2023-04-04 03:00:00,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/c7f5ca428def91e107c6e561dd74f6bf.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:Mybatis重置Criteria的正确姿势分享.doc

本文 PDF 下载地址:Mybatis重置Criteria的正确姿势分享.pdf

下一篇:返回列表
标签:条件   发现   方法   时才
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图