一对多和多对多关联的查询策略

lazy属性的另一个属性extra 加强延迟加载

表明采用增强延迟加载策略:在<set>元素配置lazy属性为"extra"。增强延迟加载策略与一般的延迟加载策略(lazy="true")相似。

区别:这个策略能在进一步的帮我延迟加载这个对象,也就是代理对象的初始化时机。

关键代码如下:

  1. @Test
  2. public void loadDept() {
  3. // 获取Session对象
  4. Session session = HibernateUtil.currentSession();
  5. // 如果通过load方式加载Dept对象
  6. Dept dept=(Dept)session.load(Dept.class, 12);
  7. //拿该部门下的员工的人数:也就是集合的大小
  8. dept.getEmps().size();
  9. // 关闭session
  10. HibernateUtil.closeSession();
  11. }

输出结果如下:

关于extra加强延迟加载的更多相关文章

  1. extra增强延迟加载

    这种配置和配置为lazy=true是一样的,但它的好处在于调用size/contains等方法时,并不查询整个集合的数据,而是发送一条sql语句来处理,只有真正在使用时才全部去查询整个集合

  2. Hibernate之lazy延迟加载

    一.延迟加载的概念 当Hibernate从数据库中加载某个对象时,不加载关联的对象,而只是生成了代理对象,获取使用session中的load的方法(在没有改变lazy属性为false的情况下)获取到的 ...

  3. Hibernate 延迟加载

    一.什么是延迟加载? 延迟加载是指当应用程序想要从数据库获取对象时(在没有设置lazy属性值为false),Hibernate只是从数据库获取符合条件的对象的OId从而生成代理对象,并没有加载出对象访 ...

  4. Hibernate关联映射之延迟加载

    什么事延迟加载?   当真正需要数据时才执行SQL语句,其本意是减少不必要的性能开销! 之前提到过一个延迟加载的例子: load();结果集不能为空 当真正去打印对象属性时,sql语句才执行! hib ...

  5. Hibernate之lazy延迟加载(转)

    一.延迟加载的概念 当Hibernate从数据库中加载某个对象时,不加载关联的对象,而只是生成了代理对象,获取使用session中的load的方法(在没有改变lazy属性为false的情况下)获取到的 ...

  6. Hibernate-04 延迟加载

    学习任务 延迟加载 Open Session In View模式 延迟加载 延迟加载(lazy load懒加载)是在真正需要数据时才执行SQL语句进行查询,避免了无谓的性能开销. 延迟加载策略的设置分 ...

  7. Hibernate(四)--延迟加载(lazyload)

    hibernate中的延迟加载(lazyload)分属性的延迟加载和关系的延迟加载 属性的延迟加载: 当使用load的方式来获取对象的时候,只有访问了这个对象的属性,hibernate才会到数据库中进 ...

  8. 《使用Hibernate开发租房系统》内部测试笔试题

    笔试总结 1.在Hibernate中,以下关于主键生成器说法错误的是( C). A.increment可以用于类型为long.short或byte的主键 B.identity用于如SQL Server ...

  9. Hibernate内测总结

    1.在Hibernate中,以下关于主键生成器说法错误的是( ). A.increment可以用于类型为long.short或byte的主键 B.identity用于如SQL Server.DB2.M ...

随机推荐

  1. paramiko模块,线程,进程

    关于paramiko模块 paramiko是基于Python实现的ssh2远程安全连接,支持认证及密钥方式远程执行命令.文件传输,中间ssh代理等 paramiko的安装: 安装好之后,用parami ...

  2. php截取字符串

    1.substr(源字符串,其实位置[,长度])-截取字符串返回部分字符串 <?php $str ="phpddt.com"; echo substr($str, 2); / ...

  3. TCP_NODELAY

    启用TCP_NODELAY的情况下: 客户端程序C连接到服务器程序S: C仅接受数据,S仅发送数据 S循环调用send发送长度很小的数据包比如:10字节; 在C上用任务管理器查看到C的上行流量大约是下 ...

  4. Leetcode: Split Array Largest Sum

    Given an array which consists of non-negative integers and an integer m, you can split the array int ...

  5. SQLite Expert 删除表数据并重置自动增长列

    用下面的语句肯定是行不通的,语句不支持 truncate table t_Records 方法:1.删除表数据 2.重置自动增长列 where name='t_Records' /*name :是表名 ...

  6. iOS使用textfield注意的细节

    一般做登录界面或者要填写表之类的页面会经常使用到textfield.使用很简单,但是其实他有很多小的处理细节,这回让你显得有经验,交互性很好.在这里呢,我就直接拿stroyboard中的截图来说. c ...

  7. UBIFS 文件系统分析1 - 磁盘结构【转】

    转自:http://blog.csdn.net/kickxxx/article/details/7109662 版权声明:本文为博主原创文章,未经博主允许不得转载. ubifs磁盘结构 UBIFS文件 ...

  8. Java堆栈的应用2----------中缀表达式转为后缀表达式的计算Java实现

    1.堆栈-Stack 堆栈(也简称作栈)是一种特殊的线性表,堆栈的数据元素以及数据元素间的逻辑关系和线性表完全相同,其差别是线性表允许在任意位置进行插入和删除操作,而堆栈只允许在固定一端进行插入和删除 ...

  9. Process and Thread

    A process is a completely independent program that has its own address space, while a thread is a se ...

  10. Linux系统使用yum安装nodejs

    先执行: yum install \ http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm 再执行: su ...