查询策略

Hibernate框架使用面向对象检索策略,通过ORM将数据表字段映射到持久化类的属性,然后进行检索
查询方式包括:

    Load查询优化

    多端优化策略
        立即查询

        延迟查询

        预先查询

        批量查询

在Hibernate中有两种机制可以获取一个记录的信息 session.get() session.load()
差别是:

get是详情查询,会将记录的所有字段都取出

load是主键查询,只会取记录的主键信息,对其他字段的读取将在使用该字段时进行

立即检索

立即检索指的是在加载一个对象时不仅立刻加载该对象,而且还会立即加载与该对象相关联的其他对象

设置立即检索策略
    将<class>元素和<set>元素内的lazy属性值设为false(默认值)

延迟检索

延迟检索指的是对象在使用到时才会进行加载,如果不需要则不会被加载

设置延迟检索策略
    将<class>元素和<set>元素内的lazy属性值设为true

预先检索

预先检索指的是一种通过左外连接来获取对象关联实例或集合的检索方式

它主要适用于关联级别的查询

要使用预先检索策略需要在<set>元素内添加fetch属性

Fetch属性取值
    Join:迫切左外连接查询

    Select:采用普通的select查询

    Subselect:采用嵌套子查询,其效果与select时相同,但是已经在hibernate5中弃用

批量检索

批量立即检索(lazy=false)

    采用批量立即检索策略时,Hibernate会批量初始化要检索的实体类对象实例,从而减少SQL语句数目

    用使用批量立即检索需要在<class>或<set>元素中添加batch-size属性

批量延迟检索(lazy=true)

    批量延迟检索与批量立即检索的方式相同
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值