hibernate查询语言hql
在hql中关键字不区分大小写,但是属性和类名区分大小写
1、简单属性查询【重要】
* 单一属性查询,返回结果集属性列表,元素类型和实体类中相应的属性类型一致
* 多个属性查询,返回的集合元素是对象数组,数组元素的类型和对应的属性在实体类中的类型一致
数组的长度取决与select中属性的个数
* 如果认为返回数组不够对象化,可以采用hql动态实例化Student对象
参见:SimplePropertyQueryTest.java
2、实体对象查询【重要】
* N + 1问题,在默认情况下,使用query.iterate查询,有可以能出现N+1问题
所谓的N+1是在查询的时候发出了N+1条sql语句
1: 首先发出一条查询对象id列表的sql
N: 根据id列表到缓存中查询,如果缓存中不存在与之匹配的数据,那么会根据id发出相应的sql语句
* list和iterate的区别?
* list每次都会发出sql语句,list会向缓存中放入数据,而不利用缓存中的数据
* iterate:在默认情况下iterate利用缓存数据,但如果缓存中不存在数据有可以能出现N+1问题
参见:SimpleObjectQueryTest1.java/SimpleObjectQueryTest2.java
3、条件查询【重要】
* 可以采用拼字符串的方式传递参数
* 可以采用 ?来传递参数(索引从0开始)
* 可以采用 :参数名 来传递参数
* 如果传递多个参数,可以采用setParamterList方法
* 在hql中可以使用数据库的函数,如:date_format
参见:SimpleConditionQueryTest.java
4、hibernate也支持直接使用sql进行查询
参见:SqlQueryTest.java
5、外置命名查询
* 在映射文件中采用<query>标签来定义hql
* 在程序中采用session.getNamedQuery()方法得到hql查询串
参见:Student.hbm.xml、NameQueryTest.java
6、查询过滤器
* 在映射文件中定义过滤器参数
* 在类的映射中使用这些参数
* 在程序中启用过滤器
参见:Student.hbm.xml、FilterQueryTest.java
7、分页查询【重要】
* setFirstResult(),从0开始
* setMaxResults,每页显示多少条数据
参见:PageQueryTest.java
8、对象导航查询,在hql中采用 . 进行导航【重要】
参见:ObjectNavQueryTest.java
9、连接查询【重要】
* 内连
* 外连接(左连接/右连接)
参见:JoinQueryTest.java
10、统计查询【重要】
参见:StatQueryTest.java
11、DML风格的操作(尽量少用,因为和缓存不同步)
参见:DMLQueryTest.java
分享到:
相关推荐
实训商业源码-咻一咻抽奖V4.3.1 开源版-毕业设计.zip
有线网调试demo源码和apk.zip 有线网demo 的简单说明: 1、Android 原生没有有线网开关状态,需要自定义属性进行开关记忆;所以默认没设置switch开关控件; 2、有线网开关状态之前方案都是使用Settings.Global.ethernet 开关记录的,3588 AN15 使用的是prop属性记录; 3、静态ip设置:要和自动获取的ip在同一个网段;网关一般设置成X.X.X.1,设置错误会导致无法上网; 4、代理设置:端口号有范围:1-65535,以前好像遇到过311D2 wifi设置端口号范围超出数值会导致系统重启。 5、有些方案设置静态ip或者代理需要关开一次有线网才能生效。 6、有线网接入状态是导入了定制包的,只针对特定系统,其他系统不适用,直接使用估计会崩溃, 其他系统调试需要去除判断有线网接入部分代码,重新编译apk使用; 底层是如何实现判断有线网接入的,没有去研究分析,大概是通过io是否接入判断的。
实训商业源码-掌上题库V1.2.2全开源版本-毕业设计.zip
实训商业源码-梦昂图文10.2.14 公众号版-毕业设计.zip
985研究生,Matlab领域优质创作者 (1)如需代码 加腾讯企鹅号,见评论区或私信; (2)代码运行版本 Matlab 2019b (3)其他仿真咨询 1 完整代码包运行+运行有问题可咨询 2 期刊或论文复现; 3 程序定制; 4 期刊写作或指导; 5 科研合作;
毕业论文-二次元应用下载页源码 带弹幕-整站商业源码.zip
毕业论文-老虎-微信淘宝客V6.0.7-整站商业源码.zip
毕业论文-方熊表单V1.0.0 开源版-整站商业源码.zip
基于深度学习图像分割Unet的肿瘤区域识别辅助诊断系统的Python源码及全部数据(高分项目)。该项目经导师指导并认可,获得98分,适合计算机相关专业学生进行课程设计、期末大作业或项目实战练习。。内容来源于网络分享,如有侵权请联系我删除。
内容概要 本文介绍了一个用 Python 编写的微信自动回复程序。通过安装特定依赖,配置config.xlsx文件中的关键词和回复内容,运行auto_reply.py程序,即可实现微信自动回复功能。程序会持续监测微信新消息,满足特定条件时,依据关键词匹配回复内容进行自动回复。 适用人群 适合微信消息较多,希望节省回复时间的人群,尤其是经常被重复性消息打扰的办公族、客服人员等,也适合对 Python 编程感兴趣,想要尝试开发简单自动化工具的初学者。 使用场景及目标 在工作场景中,能自动回复常见问题,提高沟通效率;生活里,可快速回应亲友的常用问候,避免遗漏消息。目标是减少手动回复的繁琐,解放双手,让信息处理更高效。 其他说明 运行前需确保正确安装依赖,可修改config.xlsx来自定义回复规则。运行程序后,按Ctrl+C可停止。若遇到问题,可从依赖安装、文件配置等方面排查。
实训商业源码-全新开源贫穷网打赏源码-毕业设计.zip
实训商业源码-智云物业2.3.9-毕业设计.zip
CAD技术在农业机械工程设计中的运用研究.pdf
内容概要:本文介绍了Dify——一个用于开发大型语言模型(LLM)应用程序的开源平台。Dify融合了后端即服务(BaaS)和LLMOps理念,使开发者能快速构建生产级别的生成式AI应用。它支持多种LLM模型,包括GPT、Mistral、Llama3等,并兼容多种推理提供商。Dify内置了高质量的检索增强生成(RAG)引擎和灵活的Agent框架,支持聊天助手、文本生成、Agent应用和工作流等多种应用类型。通过丰富的功能组件,如数据集管理、可视化Prompt编排、应用运营工具和插件生态系统,Dify极大简化了AI应用的开发过程。文章还展示了Dify在电商智能客服、新媒体内容生成和企业办公自动化等实际场景中的应用案例,并与FastGPT进行了对比,突出了Dify在模型接入、应用构建和用户友好度等方面的优势。 适合人群:对AI应用开发感兴趣的研发人员,尤其是希望快速构建和部署AI应用的开发者和企业。 使用场景及目标:①通过Dify的强大模型支持和RAG引擎,快速构建智能客服、内容生成等AI应用;②利用Agent框架和工作流功能,实现复杂任务的自动化处理;③通过丰富的功能组件和插件生态系统,提升应用的灵活性和功能性。 其他说明:Dify不仅提供了便捷的安装和使用指南,还展望了未来的发展前景,强调其在降低AI应用开发门槛和推动AI技术创新方面的巨大潜力。
实训商业源码-深蓝AI智能名片小程序1.7.1-毕业设计.zip
【研华科技】以数智融合打造可持续管理的企业未来.pdf
“平台+生态”打造产业数字化新引擎.pdf
实训商业源码-柚子社区团购 1.3.17-毕业设计.zip
实训商业源码-云会员 1.86-毕业设计.zip
毕业论文-垃圾分类指南小程序V1.0.12+前端-整站商业源码.zip