Hibernate的延迟加载机制
2009-06-03 22:29
274 查看
Hibernate和延迟加载
Hibernate对象关系映射提供了两种对象初始化模式:延迟加载和非延迟加载。非延迟加载在加载时获取对象本身以及它关联的所有对象。这可能导致在获取一个实例时,执行成百上千的select语句。当使用双向关联时,这个问题被放大,常常出现初始化请求时,整个数据库都被载入。显然检查每个对象的关系,并手工删除他们会费点事,但最终我们可能会因此丢失使用ORM工具的优势。一个明细的解决方式是使用hibernate提供的延迟载入机制。这种初始化策略在类成员被访问时只载入它的一个对象的一对多和多对多关系。对开发人员来说,这种方式是透明的,并且只有最少数量的请求发生,这样就获得了最佳的性能。这种技术的一个缺点是延迟载入要求当对象还在使用中时,Hibernate的Session必须保持打开状态。当尝试通过DAO模式抽象持久层时,这会引起一个重要问题。为了充分地抽象持久层,所有的数据库逻辑,包括打开、关闭Session都不能在应用层出现。最常见的是,这些逻辑隐藏在DAO的实现类中。快速和差一些的方案是:避免采用DAO模式,在应用层中包含数据连接的逻辑。这在小应用中是可行的,但在大系统中,这会是一个设计缺陷,它损害了应用的扩展性。
相关文章推荐
- Hibernate——(6)延迟加载机制
- 如何理解Hibernate的延迟加载机制?在实际应用中,延迟加载与Session关闭的矛盾是如何处理的?
- Hibernate延迟加载机制
- Hibernate延迟加载机制详解
- Hibernate延迟加载机制
- Hibernate延迟加载机制
- Hibernate延迟加载机制
- (十四)Hibernate之性能优化之延迟加载机制
- 深入理解Hibernate的延迟加载机制
- J2EE进阶(八)Hibernate与延迟加载机制探究
- 转 Hibernate延迟加载机制
- 如何理解 Hibernate的延迟加载机制?延迟加载与Session关闭的矛盾如何处理?
- Hibernate延迟加载机制
- 有关hibernate相关的延迟加载和缓存机制
- Hibernate延迟加载机制
- load和get之Hibernate的延迟加载机制
- 【Java基础】Hibernate的缓存机制以及延迟加载
- J2EE进阶(八)Hibernate与延迟加载机制探究
- hibernate 延迟加载底层实现机制
- hibernate的延迟加载机制