Mybatis重置Criteria的正确姿势是怎么样的
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这期内容当中小编将会给大家带来有关Mybatis重置Criteria的正确姿势是怎么样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Mybatis重置Criter
千家信息网最后更新 2025年01月19日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 ListoredCriteria
这个列表长度为0时才会添加,进去。
查看映射的xml文件时发现,查询条件正是取自于oredCriteria。
只有调用or时才添加到该集合中
public void or(Criteria criteria) { oredCriteria.add(criteria); }
我们想重置查询条件怎么办?
两种方法:
一种是只清空Example的oredCriteria属性。
那么可以通过Example类中的getOredCriteria() 函数获取该列表后通过clear方法清空。
public ListgetOredCriteria() { return oredCriteria; }
另外一种更彻底的方法,直接调用Example的clear() 方法,将exmple对象"重置"为初始状态。
public void clear() { oredCriteria.clear(); orderByClause = null; distinct = false; pageParam = null; }
得出一个结论
遇到问题,多看源码,多看官方文档。
Mybatis的Criteria用法总结
用一对多内敛查询的时候,有的老铁提出left join in 但是我和同事商讨结果是用代码写处各种list然后stream存到数据库中,这样一来把计算压力从数据库存入服务器,当并发量高了,这样做的好处就体现在性能方面了。
上述就是小编为大家分享的Mybatis重置Criteria的正确姿势是怎么样的了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。
查询
方法
条件
姿势
做法
内容
再次
只有
对象
数据
数据库
源码
问题
分析
生成
内敛
这样一来
一来
中小
代码
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
安徽六安软件开发培训排名
软件开发外包生产厂家
软件开发与验证确认
电信专线跟服务器有什么区别
dhcp服务器的作用
网络安全评价机制
换手机后王者荣耀服务器找不到
办公室如何做好管理与服务器
个人云与服务器的区别
教师线上教学网络技术培训方案
因特网络技术中 isp是指
软件开发模型怎么选择
腾讯课堂的服务器
天谕服务器列表
服务器三种管理
戴尔服务器怎么查硬件日志
预防网络安全的策略和技术
戴尔服务器怎么看型号和序列号
临沂智淘网络技术有限公司
网络安全体系相关法律有几部
企业网络安全管理
数据库中cname能否为空
韶关市软件开发招聘信息
违反网络安全法第二十二条处罚
c服务器编程
软件开发平台是什么职位
什么时候实施网络安全等级
电脑运行链接服务器
象山安卓软件开发系统
大专软件开发方向找什么工作