全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

hibernate有几种查询方式?

发布时间:2022-09-22 11:52:06
发布人:wjy

  1. 导航对象图查询:根据已加载的对象,导航到其他对象 例如,对于已经加载的Customer对象,调用它的getOrders().iterator()方法就可以导航到所有关联的Order对象,假如在关联级别使用了延迟加载检索策略,那么首次执行此方法时,hibernate会从数据库中加载关联的Order对象,否则就从缓存中获得Order对象。

  2. OID方式:按照对象的OID来检索对象 Session的get()和load()方法提供了这种功能,如果在应用程序中先知道了OID,就可以使用这种方式检索对象。 get()和load()的用法完全一样,都需要两个参数,一个是持久化对象类名class,一个是行号OID,返回固定的某一行的数据,但是需要注意的是,当输入的OID不存在时,get()会返回一个空对象,load()则直接报错。

hibernate有几种查询方式

  3. HQL检索方式(hibernate query language) 使用面向对象的HQL查询语言,session的find()方法用于执行HQL查询语句。此外,hibernate还提供了query接口,它是hibernate提供的专门的HQL查询接口,能够执行各种复杂的HQL查询语句。

  它具备以下功能:

  - 在查询语句中设定各种查询条件;

  - 支持投影查询,即仅检索出对象的部分属性;

  - 支持分页查询;

  - 支持连接查询;

  - 支持分组查询;

  - 提供内置函数;

  - 能够调用用户自定义的SQL函数;

  - 支持子查询;

  - 支持动态绑定参数; 例如:Query query = session.createQuery(“from UserPo”); 获得一个query对象,注意参数字符串中不是一个SQL语句,from后面的是持久化对象名称; List list = query.list(); 就可以获取数据库中对应表的数据集合。

  4. QBC检索方式:Query By Criteria的API来检索对象,这种API封装了基于字符串形式的查询语句,提供了更加面向对象的接口。

  例如: Criteria criteria = session.createCriteria(UserPo.class); 创建一个Criteria对象,参数是所关联的持久化对象,criteria.add(Restrictions.ge("id",2));将查询条件加入对象中,后面的操作就和Query对象一样了。

  5. 利用原生SQL语句进行查询

相关文章

图卷积网络和self-attention有什么区别?

图卷积网络和self-attention有什么区别?

2023-10-15
深度学习模型权重h5、weights、ckpt、pth有什么区别?

深度学习模型权重h5、weights、ckpt、pth有什么区别?

2023-10-15
机器学习中Inference和predict的区别是什么?

机器学习中Inference和predict的区别是什么?

2023-10-15
kd-tree和ball-tree在算法实现原理上有什么区别?

kd-tree和ball-tree在算法实现原理上有什么区别?

2023-10-15

最新文章

常见网络安全面试题:Windows常用的命令有哪些?

常见网络安全面试题:Windows常用的命令有哪些?

2023-10-09
常见网络安全面试题:根据设备告警如何展开排查?

常见网络安全面试题:根据设备告警如何展开排查?

2023-10-09
常见网络安全面试题:mysql加固呢?(数据库加固)

常见网络安全面试题:mysql加固呢?(数据库加固)

2023-10-09
常见网络安全面试题:windows和linux加固?(操作系统加固)

常见网络安全面试题:windows和linux加固?(操作系统加固)

2023-10-09
在线咨询 免费试学 教程领取