Hibernate检索策略和检索方式

1 Hibernate的检索策略

Hibernate的检索策略分为两个级别:

  • 类级别的检索策略:立即检索、延迟检索。
  • 关联级别的检索策略:立即检索、延迟检索还是迫切左外连接检索。

注意:在类级别上,Session的load()方法可以实现延迟检索,但是Session的get()和Query接口的list()总是立即检索。

检索策略运行机制如图1-1所示:

图1-1 检索策略

在ORM映射文件中可以设置检索策略:

<class>、<set>、<many-to-one>元素的lazy属性设置检索策略,另外<set>、<many-to-one>的fetch属性,如图1-2所示:

图1-2 检索策略设置

另外,<one-to-one>设置延迟检索的方式为:属性constrained="true"。

采用延迟检索返回的是代理类的实例:

  • Hibernate在运行时动态生成,继承了要检索类的所有属性和方法。
  • 仅初始化了OID属性
  • 第一次访问此代理类时(getId()方法除外),Hibrenate对其进行初始化,从数据库中加载对象的数据。


2 Hibernate的检索方式

  • HQL检索方式——最为常用,跨平台
  • QBC检索方式——跨平台
  • SQL检索方式——与数据库绑定
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值