To lazily load a related class, you must configure the <many-to-one> or <oneto-
one> association element that references the class to use lazy loading. You
must also disable proxying for the referenced class. For example, you can lazily
load a PendingOrder’s coupon by configuring the PendingOrder’s coupon property
with lazy="true". Here is an excerpt from the O/R mapping document for the
PendingOrder and Coupon classes that does this:
<class name="PendingOrder" table="PENDING_ORDER">
…
<many-to-one name="coupon"
class="AbstractCouponImpl"
column="COUPON_ID"
lazy="true"
fetch="select"
/>
…
</class>
<class name="AbstractCouponImpl"
lazy="false"
table="COUPON">
…
The lazy="true" attribute of the <many-to-one> element specifies that the coupon
property should only be loaded when it is first accessed. The fetch="select" prevents
Hibernate from eagerly loading the Coupon using an outer join. The
lazy="false" attribute of the <class> element for the AbstractCouponImpl class
tells Hibernate to not use a proxy for this class.
in pojo in action (on page 244)
分享到:
相关推荐
在Hibernate框架中,`get`和`load`都是用于从数据库中检索持久化对象的方法,但它们在工作原理和使用场景上存在着显著的区别。本文将深入探讨这两个方法的差异,并结合实际应用进行详细阐述。 首先,`get`方法是...
`load`和`get`方法是Hibernate中用于检索实体的两种主要方式,它们都是从Session接口中调用,但有明显的区别和各自的适用场景。 1. `load`方法: - `load`方法主要用于根据主键加载对象,它返回一个代理对象,而...
除了Servlet层面的懒加载外,代码中还涉及到了Hibernate框架下的懒加载机制。通过`OpenSessionInViewFilter`的配置,可以实现在视图渲染过程中的会话保持,从而优化数据库查询效率,避免不必要的数据加载。具体而言...
在现代软件开发中,尤其是在基于Java的企业级应用开发中,Hibernate作为一种流行的ORM(Object Relational Mapping)框架,极大地简化了开发者对数据库的操作。其中,延迟加载(lazy loading)是一项重要的特性,它...
- **读取(Read)**:通过 `get()` 或 `load()` 获取单个实体,`createQuery()` 或 `createSQLQuery()` 执行 HQL(Hibernate 查询语言)或 SQL 查询获取多个实体。 - **更新(Update)**:修改实体后调用 `update...
通过《Hibernate5实例程序》中的代码示例,读者可以亲手实践上述各个知识点,加深理解,并掌握在实际项目中如何有效利用Hibernate5进行数据库操作。同时,这也将有助于提升Java开发者的数据库管理和应用开发能力。
除了HQL,Hibernate还提供了Criteria API进行动态查询,无需编写字符串查询,更安全且易于维护。 **五、性能优化** 1. **缓存机制**:Hibernate支持一级缓存(Session级)和二级缓存(SessionFactory级),可以...
10. **懒加载(Lazy Loading)**:Hibernate的懒加载策略能延迟加载关联的对象,直到真正需要时才从数据库中获取,以优化性能。 11. **一对多、多对一、多对多关系映射**:Hibernate通过@OneToMany、@ManyToOne、@...
通过这份"hibernate3.2中文文档",读者不仅可以学习到Hibernate的基础知识,还能了解到如何在实际项目中高效地使用该框架,从而提升开发效率并降低出错率。无论是作为入门教程还是进阶参考,都是非常有价值的。
8. ** Criteria 查询**:除了HQL,Hibernate还提供了Criteria API,一种更动态、类型安全的查询方式。 9. **第二级缓存(Second-Level Cache)**:提高性能的一种机制,缓存对象在多个会话之间共享,可配置不同的...
开发者还可以选择第三方缓存服务如Ehcache集成到Hibernate中。 8. **事务隔离级别**:Hibernate支持四种标准的事务隔离级别(READ_UNCOMMITTED, READ_COMMITTED, REPEATABLE_READ, SERIALIZABLE),可以根据项目...
Hibernate 是一个开源的对象关系映射(ORM)框架,它允许开发者使用面向对象的编程模型来操作数据库,从而简化了Java应用程序中的数据存取工作。在Hibernate 3.2版本中,它提供了许多改进和增强的功能,包括性能优化...
Hibernate 是一个强大的Java对象关系映射(ORM)框架,它为开发者提供了在Java应用程序中操作数据库的强大工具。本教程将深入探讨Hibernate的核心概念、配置、实体映射以及如何通过它来简化数据库交互。 一、...
"Hibernate中Session.get()方法和load()方法的详细比较" Hibernate中Session.get()方法和load()方法是两个常用的数据访问方法,但它们之间有着本质的区别。 首先,从返回值上看,get()方法直接返回实体类,如果查...
Hibernate,作为一个强大的对象关系映射(ORM)框架,极大地简化了Java开发者在数据库操作中的工作。它通过提供数据持久化的对象模型,使得开发者可以专注于业务逻辑,而无需过多关注底层的SQL语法。本文将基于黑马...
通过以上详细讲解,读者将能够理解Hibernate的核心概念,通过实例逐步熟悉其用法,从而在实际项目中更加得心应手地运用Hibernate。实践中,读者可以尝试创建实体类,配置映射,执行增删改查操作,体验Hibernate带来...
11. **延迟加载(Lazy Loading)**:Hibernate 3.2支持懒加载机制,对于一对多或多对一的关系,关联对象默认不会立即加载,而是在真正需要时才从数据库中获取,减少内存占用。 12. **事件监听器**:Hibernate提供了...
Hibernate 是一个开源的对象关系映射(ORM)框架,它允许开发者使用面向对象的方式来操作数据库,极大地简化了Java应用中的数据存取操作。在Java开发中,Hibernate 提供了一种便捷的方式来执行数据库的增删改查...
《Hibernate V3.12中文参考手册》是Java开发者的重要参考资料,它详尽地阐述了Hibernate框架在V3.12版本中的各项功能和用法。Hibernate是一个开源的对象关系映射(ORM)框架,它允许开发者用面向对象的方式操作...
从 Hibernate 3 开始,除了实体对象和集合之外,还可以实现对属性的延迟加载。这使得可以在实体对象已经加载的情况下,只加载需要的特定属性,进一步提高了性能。 ##### 配置示例 ```xml <hibernate-mapping> ...