`
- 浏览:
128195 次
- 性别:
- 来自:
北京
-
hibernate3.0中lazy有三个值,true,false,proxy,默认的是lazy="proxy".
具体设置成什么要看你的需求,并不是说哪个设置就是最好的。
假如在student对象中包含一个head对象
如果你确定在用student对象的时候就要用到head对象里的属性,那你就设置立即加载,因为设置立即加载那么在查询student的同时就会查询student的head,hibernate就会在查询的时候关联两张表从而生成的sql就可能只有一条。而如果你设置的是延迟加载,那么肯定会要生成1+N条sql语句:其中“1”是查询student的语句,“N”是根据N个student的id去查询head的N条语句。而且,延迟加载是要用到的时候才去执行查询,这样系统判断那里需要加载,那里不需要加载也需要时间,性能上肯定就不如立即加载了!
如果,你是有的地方需要用到student的时候才用到head属性,那么你就设置成延迟加载,因为查询2张表的数据肯定要比查询1张表的数据消耗大。
到低要怎样设置就要看你的实际需求了
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
懒加载(Lazy Loading)是一种延迟加载策略,只有在真正需要对象时才加载,以减少内存占用。立即加载(Eager Loading)则是在查询时同时加载关联的对象。批量加载(Bulk Loading)如批处理更新和删除,可以减少...
6. **延迟加载**:Hibernate的懒加载机制(lazy loading)允许我们在需要时才加载关联的对象,这有助于减少内存消耗和提高程序性能。 7. **事务管理**:Hibernate提供了对JTA(Java Transaction API)和JDBC事务的...
此外,还有懒加载(Lazy Loading)、批处理(Batch Processing)、缓存策略等优化手段,以降低数据库访问压力。 8. **其他高级特性** Hibernate还支持实体的生命周期回调(Lifecycle Callbacks)、动态模型...
除了上述内容,Hibernate5还包含了其他的高级特性,例如延迟加载(Lazy Loading)、级联操作(Cascade)、事件监听器(Listeners)以及实体状态管理等。延迟加载允许我们在需要时才加载关联的对象,以减少不必要的...
如果只需要获取部分关联数据,可以考虑使用懒加载(lazy loading)或分页查询(pagination)来避免大数据量的加载。 总的来说,Hibernate的一对多关联更新涉及到实体关系的配置、级联操作的理解以及性能优化等多个...
如果不需要立即加载,可以设置为`LAZY`,延迟加载关联实体。 4. **级联操作**:通过`CascadeType`可以设置级联操作,比如删除一个`Person`时,是否同时删除对应的`IdCard`。 在实际开发中,一对一关系映射的使用...
为了提高性能,Hibernate提供了各种优化策略,如延迟加载(Lazy Loading)、批处理(Batch Processing)、预加载(Eager Loading)、缓存策略调整等。 十、其他高级特性 还包括CGLIB和JPA支持、拦截器(Interceptor...
7. **延迟加载(Lazy Loading)**:理解何时及如何使用懒加载以提高性能。 8. **缓存机制**:第一级缓存(Session缓存)和第二级缓存(SessionFactory缓存)的概念和配置。 9. **事务管理**:在Hibernate中使用...