hibernate检索策略

检索策略概念

  • hibernate检索策略分为两类
    • 立即检索:根据id查询,调用get方法,一调用get方法马上发送语句查询数据库
      • 如果没哟获取到,返回null
    • 延迟查询:根据id查询,调用load方法,但是不会马上发送语句查询数据,只有得到对象里面的==不是id的==值的时候才会查询数据库
      • 如果没有获取到,不会发异常,当要使用这个对象的时候,会抛出异常
      • 执行延迟查询后,返回的结果只有id值,当要 获取对象中其他值的时候,就会发送查询语句
  • 延迟查询分成两类
    • ==类级别延迟==:根据id查询返回实体类对象,调用load方法不会马上发送语句
    • ==关联级别延迟==:查询某个实体类的关联属性延迟查询

关联级别延迟操作

  • 在映射文件中进行配置实现hibernate检索策略
    • 根据客户得到的所有的联系人,在客户映射 文件中配置
  • 在set标签上使用属性hibernate检索策略
    • fetch:值select(默认)
    • lazy:值:
      • true:延迟(默认
      • false:不延迟
      • extra:及其延迟
        • 当需要集合中的某个资源的时候,单独只是查询这个资源

批量抓取

  • 应用场景:如果要查询一对多,或者多对多、中多的一方的实体类的关联集合属性,
  • 传统方式:
    • 代码: hibernate检索策略
    • 结果:hibernate检索策略
  • 批量抓取配置:在有关联集合属性的一端的映射配置文件中的set标签添加一个属性batch-size ,这个属性的值越大性能越高hibernate检索策略
    • 结果:hibernate检索策略