`
vager
  • 浏览: 5739 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
最近访客 更多访客>>
社区版块
存档分类
最新评论

Hibernate学习笔记之Lazy策略

阅读更多

Hibernate Lazy采用CGLIB,可以对类进行代理,用在:

 

1.Class: 可以取值true,false,默认true。

 

2.Property: 可以取值true,false,需要类增强工具。

 

3.集合:true/false/extra。

 

4.one-to-one,many-to-one:取false,proxy/noproxy。

 

5.Hibernate lazy概念:只有真正使用该对象时,才会创建,对于Hibernate来说,只有真正使用时才会发出sql。

 

6.测试类Hibernate Lazy:查id不发sql,因为你传的就是主键,查别的属性会发sql,Hibernate Lazy有效期必须是session在open时才可以,解决方式是使用openSessionInview。

 

7.测试集合Hibernate Lazy:get集合时不会发sql,迭代会发sql,查个数的时候会把整个集合查出来,这样的话对效率有影响。

 

  • 把class的lazy设置成false时,再load类时会把普通属性都查出来,但是集合不查。
  • class标签上的lazy不会影响到集合上的lazy特性。
  • class标签上的lazy特性只对普通属性起作用。
  • lazy在集合上用extra在获取size的时候会发出count语句,这样对效率有提升。
  • 在单端关联上lazy默认,和集合一样,在get时返回代理不发查询语句,在使用时发出sql。
  • 在单端关联上lazy=false,在访问普通属性时发出两条sql,查询属性以及对应的关联对象。
  • 将class标签上lazy设置成false,其它默认:不会影响单端关联,也不会影响集合。
分享到:
评论

相关推荐

    Hibernate学习笔记

    【Hibernate学习笔记】 在深入探讨Hibernate之前,先要理解什么是持久化对象的状态。持久化对象在Hibernate中有三种状态:瞬时(Transient)、持久化(Persistent)和离线(Detached)。瞬时对象是指通过`new`操作...

    hibernate学习笔记

    get 和 load 方法的区别在于对懒加载(lazy loading)的支持,get 直接加载数据,而 load 支持延迟加载。如果 get 无法找到数据,则返回 null;load 则会抛出异常。 transient 状态的特征是数据库中没有对应记录,...

    Hibernate学习笔记!

    **Hibernate学习笔记** Hibernate是一个强大的Java对象关系映射(ORM)框架,它为开发者提供了在Java应用程序中操作数据库的强大工具。本笔记将深入探讨Hibernate的核心概念、配置、实体管理、查询语言以及最佳实践...

    Hibernate学习笔记.doc

    《Hibernate学习笔记》 在Java开发中,Hibernate是一款强大的对象关系映射框架,它极大地简化了数据库操作。本文将从创建第一个Hibernate项目开始,逐步深入介绍Hibernate的核心概念和使用技巧。 首先,创建第一个...

    Hibernate3.2学习笔记

    本篇学习笔记将深入探讨Hibernate3.2的核心概念,包括环境搭建、主要接口、映射方式以及性能优化策略。 首先,让我们从搭建Hibernate3.2开发环境开始。在创建一个新的Java项目后,我们需要添加必要的库文件,主要...

    hibernate个人学习笔记完整版

    【hibernate个人学习笔记完整版】是一份详尽的资料,涵盖了Hibernate框架的基础到高级应用,旨在帮助学习者深入理解和掌握这一强大的Java对象关系映射(ORM)工具。Hibernate作为Java开发中的主流ORM框架,它极大地...

    hibernate学习笔记(全)

    【hibernate学习笔记(全)】是一份全面介绍Hibernate框架的资料,涵盖了从基础到高级的诸多知识点。Hibernate作为Java领域中一个流行的持久化框架,它极大地简化了数据库操作,使得开发者可以更加专注于业务逻辑而...

    Hibernate学习笔记,使用Hibernate做数据层非常方便

    【Hibernate学习笔记,使用Hibernate做数据层非常方便】 在Java开发中,Hibernate是一个非常流行的ORM(Object-Relational Mapping)框架,它简化了数据库操作,将数据库中的表映射为Java对象,使得开发者可以像...

    Hibernate学习笔记(培训学习时的笔记)

    【Hibernate学习笔记】 Hibernate是一个强大的Java对象关系映射(ORM)框架,它简化了数据库与Java应用程序之间的交互。本笔记将深入探讨Hibernate的核心概念、配置、实体管理、查询语言以及事务处理等方面,帮助...

    2023年Java相关课程系列笔记之十四Hibernate学习笔记.doc

    在本篇“2023年Java相关课程系列笔记之十四Hibernate学习笔记”中,我们将深入探讨Java开发中常用的持久化框架——Hibernate。这个框架由梁建全老师主讲,旨在帮助开发者更高效、便捷地进行数据库操作,弥补JDBC在...

    ( Hibernate 学习笔记.rar )面试资料

    通过这份学习笔记,开发者不仅可以系统地了解Hibernate的基本用法,还能掌握其在实际项目中的应用策略,提升面试竞争力。对于J2EE开发者来说,精通Hibernate框架无疑能增加求职的成功率,特别是在高新技术领域。

    Hibernate学习笔记(三)

    在本篇“Hibernate学习笔记(三)”中,我们将深入探讨Hibernate这一强大的Java持久化框架。Hibernate是一个对象关系映射(ORM)工具,它允许开发者用面向对象的方式处理数据库操作,极大地简化了Java应用程序与...

    struts and hibernate学习笔记

    在这些学习笔记中,我们可以期待以下主题的深入探讨: 1. **Struts2基础**:包括Struts2的架构、配置文件详解、Action类的创建、结果类型配置、Interceptor的使用以及如何整合Struts2与Spring。 2. **Struts2实战*...

    hibernate 3.3学习笔记

    **hibernate 3.3学习笔记** 在深入探讨Hibernate 3.3的学习笔记之前,首先需要理解Hibernate是什么。Hibernate是一个强大的开源Java持久化框架,它简化了数据库操作,允许开发者将精力集中在业务逻辑上而不是数据库...

    hibernate入门学习笔记+源码

    **hibernate入门学习笔记+源码** **一、Hibernate简介** Hibernate是一个开源的对象关系映射(ORM)框架,它简化了Java应用与数据库之间的交互。通过提供对象化的数据访问方式,Hibernate消除了传统JDBC代码中的...

    Hibernate3.3_学习笔记.doc.zip

    《Hibernate3.3_学习笔记》是一份详细记录了Hibernate3.3版本特性和使用方法的文档,旨在帮助开发者深入理解和应用这一强大的对象关系映射(ORM)框架。Hibernate是Java开发中的一个明星库,它简化了数据库操作,...

Global site tag (gtag.js) - Google Analytics