`
neptune
  • 浏览: 361944 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

hibernate的属性延时加载后,同一个对象可以为多个属性复制

 
阅读更多
例如有一个类User其有两个Group属性。

class User {
    private Group group1;
    private Group group2;
    group1 get set;
    group2 get set;
}


User user = this.userDao.get(userId);
this.userDao.initializedProperties(group1);

如果group1的id和group2的id值相同,则会同时也填充group2属性。

也就是说,user.group2.name,也是正确的,因为group1.id=group2.id。加载group1属性时,同时也赋值到了group2属性。如果在执行this.userDao.initializedProperties(group2);则不会有sql语句触发。




分享到:
评论

相关推荐

    【北大青鸟内部教程】jsp中关于Hibernate延时加载的问题

    4. **N+1查询问题**:如果一个实体有多个关联属性,每次访问这些属性时,数据库都会执行额外的查询,这可能导致性能下降。使用Hibernate的批处理查询或“选择加入”(Eager Fetching)策略可以优化这种情况。 5. **...

    Hibernate延时加载与lazy机制.doc

    当我们将一个类或集合的`lazy`属性设置为`true`时,Hibernate会在需要时才去加载关联的对象,而不是在加载主对象时一并加载。这样可以避免不必要的数据库查询,提高性能。 **3. 错误和注意事项** 延迟加载可能导致...

    hibernate延时

    当创建一个延时加载的实体时,Hibernate 实际上返回的是一个代理对象,而不是真正的实体对象。这个代理对象包含了足够的信息来识别原始对象(如主键),并在真正需要数据时发起查询。 此外,Hibernate 还利用了 ...

    Hibernate延迟加载

    延迟加载(Lazy Loading)策略允许我们仅在需要访问一个对象或其属性时才从数据库加载它们,而不是在初始加载实体时就一次性加载所有数据。这种机制可以避免在不必要的时候消耗额外的数据库资源,特别是当数据量大...

    hibernate优化前的程序

    在探讨Hibernate优化前的程序之前...总结来说,优化Hibernate程序需要从多个方面考虑,包括查询设计、数据加载策略、资源管理、缓存使用以及数据库层面的优化。理解并熟练运用这些技巧,能够显著提升应用的性能和效率。

    java程序中的延时加载异常及解决方案

    当我们在事务外部,比如在控制器层或视图层尝试访问这些延迟加载的属性(如`Student`的`name`属性,而不是唯一的`studentId`)时,由于Hibernate的Session已经关闭,尝试初始化延迟加载对象会导致异常,通常表现为`...

    hibernate相关知识

    11. **Hibernate的延时加载(Lazy Loading)**:默认情况下,关联的对象只有在被访问时才会加载,节省了数据库查询的开销。 12. **性能优化**:包括批处理、缓存策略调整、查询优化等方法,以提高Hibernate应用的...

    各种框架说明

    - **延时加载(Lazy)**:仅在真正需要数据时才加载数据,有助于减少内存消耗和提升性能。 - **类级别**:通过`<class>`标签的`lazy`属性设置; - **属性级别**:通过`<property>`标签的`lazy`属性设置; - **...

    海辉面试题

    #### Hibernate延时加载 - 通过懒加载属性(`lazy="true"`)实现。 #### JNDI - **JNDI**:Java Naming and Directory Interface,用于查找和定位企业级应用中的资源。 #### session的实现即机制是什么? - **...

    java爬虫程序

    Java提供了Jsoup库,它是一个强大的解析器,可以方便地按照CSS选择器定位元素,提取文本、属性值等信息。此外,还可以用SAX、DOM或JDom等XML解析器,但它们对HTML的支持可能不如Jsoup强大。 3. **异步处理**:为了...

    (2024)跳槽涨薪必备精选面试题.pdf

    这些知识点主要涉及软件开发、并发编程、数据库管理、网络通信以及系统架构等多个方面。接下来,我们将逐一解析这些知识点。 ### 一、代码分析 #### 代码示例 ```java public static void main(String[] args) { ...

    聚票网代码\数据库爬虫方面代码

    在IT行业中,数据库爬虫是数据获取和分析的重要技术,...综上所述,这个压缩包中的代码涵盖了数据库设计、Java Web开发、网络爬虫等多个重要IT知识点,对于理解如何从网站获取数据并存储到数据库具有很高的学习价值。

Global site tag (gtag.js) - Google Analytics