zoukankan      html  css  js  c++  java
  • Hibernate总结(三)

    Hibernate(二)中,简单总结了表与表之间的级联操作,但是并没有总结查询操作,这一篇将总结Hibernate查询所实现的加载策略。

    加载策略:

      立刻加载:马上去数据库中查询

      延迟加载:当使用数据时去数据库查询

    加载的使用:

      类级别的加载:某个Class的加载方式

        1 get(): 立刻加载

        2 load():是否懒加载和配置属性lazy有关。<class name="Course" table="t_course" lazy="true">,默认,lazy为true,为懒加载。若改为false,load()方法

                  将和get()方法一样立刻加载

      关联级别的加载:当存在关系时,加载其中一方数据,该如何加载另一方数据?设计到的属性是lazy与fetch属性

              1-多加载策略:

               默认为: lazy="true",fetch="select"

      lazy="true" lazy="false" lazy="extra"
    fetch="select" 实现懒加载,两条SQl语句,普通select语句 立刻加载,普通select语句  
    fetch="join" 因为是1条语句,所以立刻加载,连接语句 因为是1条语句,所以立刻加载,连接语句  
    fetch="subselect" 懒加载,子查询语句 立刻加载,字查询语句  

              多-1加载策略:

               默认为: lazy="false"(明明是false,但实现懒加载,很奇怪),fetch="select"

      lazy="false" lazy="proxy" lazy="no-proxy"
    fetch="select" 延迟加载,普通select语句

    若关联对象的加载策略为true,则懒加载

    若关联对象的加载策略为false,则立刻加载

     
    fetch="join" 立刻加载,连接语句 立刻加载,连接语句  

            

  • 相关阅读:
    mysql赋权限
    MySQL Server 5.6安装
    Class.isAssignableFrom(Class clz)方法 与 instanceof 关键字的区别
    每天一个linux命令
    解锁scott用户
    堆栈的理解
    类与对象的理解
    数组copy
    ArrayList 的代码
    intput/output 文件的复制练习
  • 原文地址:https://www.cnblogs.com/kingofkai/p/6023739.html
Copyright © 2011-2022 走看看