- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
hibernate的查询方式主要有以下几种
hibernate的查询方式主要有以下几种,你可以看看,也可以去官方下载文档来看看,不过是英文版本。希望对你有帮助,谢谢
hibernate查询方式
? 小结Hibernate...
? Hibernate对多...
? hibernate查询...
? Hibernate之查...
? Hibernate 查...
更多相关推荐...
在HQL中关键字不区分大小写,但是属性和类名区分大小写,下面介绍各种类型的Hibernate的HQL查询。
1、Hibernate HQL查询:简单属性查询
* 单一属性查询,返回结果集属性列表,元素类型和实体类中相应的属性类型一致
* 多个属性查询,返回的集合元素是对象数组,数组元素的类型和对应的属性在实体类中的类型一致
数组的长度取决与select中属性的个数
* 如果认为返回数组不够对象化,可以采用HQL动态实例化Student对象
2、Hibernate HQL查询:实体对象查询
* 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问题
3、Hibernate HQL查询:条件查询
* 可以采用拼字符串的方式传递参数
Java代码:
List students = session.createQuery(select s.id, from Student s where like %1%).list();
* 可以采用 ?来传递参数(索引从0开始)
Java代码:
List students = session.createQuery(select s.id, from Student s where like ?).setParameter(0, %1%).list(); //可以使用?方式传递参数 //参数的索引从0开始 //传递的参数值,不用单引号引起来 //注意方法链编程
* 可以采用 :参数名 来传递参数
Java代码:
List students = session.createQuery (select s.id, from Student s where like :myname).setParameter(myname, %1%).list();
* 如果传递多个参数,可以采用setParamterList方法
Java代码:
List students = session.createQuery(select s.id, from Student s where s.id in(:myids)).setParameterList(myids, new Object[]{1, 2, 3, 4, 5}).list();
* 在HQL中可以使用数据库的函数,如:date_format
Java代码:
List students = session.createQuery(select s.id, from Student s where date_format(s.createTime, %Y-%m)=?).setParameter(0, 2008-02).list();
SimpleDateFormat sdf = new SimpleDateFormat(yyyy-MM-dd HH:mm:ss); //查询2008-01-10到2008-02-15创建的学生
List students =
session.createQuery(select s.id, from Student s where s.createTime between ? and ?) .
.setParameter(0, sdf.parse(2008-01-10 00:00:00)) .
setParameter(1, sdf.parse(2008-02-15 23:59:59))
.list();
4、Hibernate HQL查询:直接使用sql进行查询
Java
您可能关注的文档
最近下载
- 外研版英语(一起点)二年级上册 Module1 大单元学历案教案 教学设计附作业设计(基于新课标教学评一体化).docx VIP
- (2020)(求职简历模板)个人简历封面(史上最全最好).doc VIP
- 三级安全教育培训、新员工入职安全教育培训 .pptx VIP
- 天线系统组成与结构解析.docx VIP
- 湖南省长沙市开福区青竹湖湘一外国语学校2022年人教版小升初考试数学试卷(含答案解析).pdf
- 排水管网维护、维修施工方案.docx VIP
- _人教版初中物理斜面计算25道题 .doc VIP
- 智启未来,育见新篇——AI赋能教育教学的探索 课件.pptx VIP
- 【简历模板】优秀个人简历模板精华集合(免费下载).doc VIP
- 面神经减压术护理ppt.pptx
文档评论(0)