http://www.ucai8.com/viewNote.do?noteId=402881851e7c2cd2011e7c65e32e002d
这几天在调试hibernate性能,在后台发现执行一个查询时生成了多条SQL语句。仔细研究后,发现是因为User对象有4个one-to-one关系。Hibernate查询时会先查询User对象,然后再对每一个User对象查询4个一对一关系的对象。这样如果我要查10个User对象时,会产生41条SQL语句。而有时我只会用到User对象的内容,不会用到其它4个关联的对象,我想对这4个对象进行延时加载。在网上查了资料后,发现Hibernate对我说的这种情况还是不支持。以下是原文。
The bottom line is that (N)Hibernate does not support lazy loading of one-to-one relations. There are several posts and explanations on why. There is one post out there by yours truly that says that it's possible and how, but you should ignore it as is was purely the result of a brain-fart in someone who was a novice a the time.
Essentially, if you want to have lazy loading don't use one-to-one, use one-to-many.
分享到:
相关推荐
hiberante4.2.3-part2
标题中的“Hibernate - one to many - update”指向的是一个关于Hibernate框架中的一对多关联关系在更新操作时的专题。Hibernate是Java开发中常用的持久化框架,它简化了数据库操作,使得开发者可以更加关注业务逻辑...
hiberante-4.2.3-part4
hiberante-4.2.3-part3
6. **延迟加载**:Hibernate的懒加载机制(lazy loading)允许我们在需要时才加载关联的对象,这有助于减少内存消耗和提高程序性能。 7. **事务管理**:Hibernate提供了对JTA(Java Transaction API)和JDBC事务的...
在XML映射文件中,可以使用`<one-to-one>`标签来声明这种关系: ```xml <!-- EntityA.hbm.xml --> <one-to-one name="entityB" class="com.example.EntityB" cascade="all" property-ref="entityA"/> ``` ```xml ...
hiberante3 注解帮助文档hiberante3 注解帮助文档hiberante3 注解帮助文档hiberante3 注解帮助文档hiberante3 注解帮助文档
- `one-to-one`标签用于定义一对一关联,`name`属性表示实体类中的属性名,`class`属性指定关联的实体类全限定名。`cascade`属性可以控制级联操作,如上面的“all”,表示当删除或更新`Person`时,其关联的`Address...
懒加载(Lazy Loading)是一种延迟加载策略,只有在真正需要对象时才加载,以减少内存占用。立即加载(Eager Loading)则是在查询时同时加载关联的对象。批量加载(Bulk Loading)如批处理更新和删除,可以减少...
《深入理解Hibernate源码与配置》 Hibernate,作为一款强大的对象关系映射(ORM)框架,深受Java开发者喜爱。本文将结合"hibernate源码"和"hibernate配置"两个核心主题,深入探讨Hibernate的工作原理及配置细节,...
在Java的持久化框架中,Hibernate是一个非常流行的ORM(对象关系映射)工具,它允许开发者将数据库操作转化为对Java对象的操作。DAO(Data Access Object)层是软件设计模式中的一个重要概念,主要用于处理数据访问...
最新springboot2基础hiberante5完整项目,打包jar,运行jsp,包括后台与前台,拦截器,登录,后台下载就可以使用,注意不是jpa,里面有完整Dao,千万级数据项目分离的代码,为了适合老项目开发特意集成hiberante5....
Spring 框架是 Java 企业级应用开发中的核心组件,它提供了全面的软件基础设施,包括依赖注入(DI)、面向切面编程(AOP)以及众多的模块如数据访问、Web 应用、任务调度等。Spring MVC 是 Spring 框架的一部分,...
Hibernate Tools是一套全新而且完整的面向Hibernate3的工具集合,它包含了Eclipse插件和Ant编译流程。Hibernate Tools是JBoss Tools的核心组件,所以他也是JBoss Developer Studio的一部分
**hibernate5.0.7安装jar包详解** Hibernate是一个强大的Java持久化框架,它为开发者提供了在Java应用程序中管理关系数据库模型的工具。在5.0.7版本中,Hibernate引入了一系列改进和增强,使得它在处理数据库操作时...
《Hibernate3.jar与API详解》 Hibernate,作为一个强大的对象关系映射(ORM)框架,是Java开发者在处理数据库操作时的得力助手。本篇将深入探讨Hibernate3.jar及其API,帮助开发者更好地理解和运用这个库。...
在本篇博文中,我们将深入探讨Hibernate框架中的一个重要特性——一对一(One-to-One)关系映射。Hibernate作为Java领域中最流行的ORM(对象关系映射)工具,它允许开发者以面向对象的方式处理数据库操作,简化了...
开发工具:MyEclipse 6....Struts+Spring+Hiberante框架整合的简单登录系统 无需配置任何文件、只需在mysql中创建一个空数据库 如:create database test; 注:mysql数据库用户名:root 密码:root