zoukankan      html  css  js  c++  java
  • Hibernate检索策略

      我们在使用Hibernate作为持久层框架,从数据库中获取数据的时候Hibernate提供了集中获取数据的策略,来提升性能。

     既然是提升性能,那就可以分两种类型考虑,一种是什么时候获取数据,另一种就是怎么获取数据。

       Hibernate中有以下集中作用域来定义抓取策略。

      static:静态的定义是在mappding中定义的。

        |-SELECT:另外发送一条 SELECT 语句抓取当前对象的关联实体或集合。除非你显式的指定 lazy="false" 禁止 延迟抓取(lazy fetching),否则只有当你真正访问关联关系的时候,才会执行第二条 select 语句

        |-JOIN:通过外连接的方式立刻抓取

        |-BATCH:对查询抓取的优化方案,通过指定一个主键或外键列表,Hibernate 使用单条 SELECT 语句获取一批对象实例或集合。

        |-SUBSELECT:另外发送一条 SELECT 语句抓取在前面查询到(或者抓取到)的所有实体对象的关联集合。除非你显式的指定 lazy="false" 禁止延迟抓取(lazyfetching),否则只有当你真正访问关联关系的时候,才会执行第二条 select 语句。

      dynamic:有下面几种方式来定义

        |-fetch profiles:在mapping中定义的,但是可以在Session中来开关

        |-HQL/JPQL:在Hibernate或者JPA Criteria查询中通过query来指定

        |-entity graphs:在Hibernate4.2中引入的一个可选功能。

  • 相关阅读:
    Centos搭建SVN服务器
    JavaScript 对象 之创建对象 学习笔记
    ThinkPHP 学习记录
    Git 版本控制 在 WIN 下的一些使用方法
    关于 CSS 的重用性
    双飞翼布局和圣杯布局
    cocos2dx3.8 ios打包脚本编写
    如何做dragonbones的lua绑定(xcode)
    【转】如何做dragonbones的lua绑定(Android)
    【转】如何做dragonbones的lua绑定(VisualStudio)
  • 原文地址:https://www.cnblogs.com/zerotomax/p/6415517.html
Copyright © 2011-2022 走看看