`
mamaoyuan625
  • 浏览: 177950 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Hibernate中加载的三种类型

阅读更多

一:实体对象的加载

比如说:用户和订单的关系是一对多, 虽然它们有关联,但是默认是延迟加载 Lazy=“true”,最终得到的是代理对象,如果要访问代理对象的属性的话,则会抛出异常,

解决方法:left join fetch 迫切抓取连接

 

select u  from User u left join fetch Order o ;

 

 

二:普通属性

默认是:lazy=“false”

如果要改为延迟 方法较麻烦

 

三:集合对象

set list map  默认 Lazy =“true”

 

1:List

 

<list name="diarys" table="petDiary" cascade="all" inverse="true">
		<key column="petId"></key>
		<index column="listindex"></index>
		<one-to-many class="com.lovo.po.PetDiary"/>
</list>

 2:set

 <set name="orders"
            table="t_order"
            cascade="all"
            inverse="true"
            lazy="true"
           >
           <key column="fk_customer_id"></key>
           <one-to-many class="Order"/>
 </set>

 3:map

private Map school=new  HashMap();      
           
public Map getSchool() {      
    return school;      
}      
public void setSchool(Map school) {      
   this.school=school;      
}  

private Map school=new  HashMap();   
        
public Map getSchool() {   
    return school;   
}   
public void setSchool(Map school) {   
   this.school=school;   
} 



Xml代码 
<map name="school" table="schools">  
      <key column="pid" not-null="true" />        
      <map-key type="string" column="indet"/>      
      <element type="float" column="score"/>      
 </map> 

key 子元素用于映射外键列,而 map-key 子元素则用于映射 Map 集合的 Key 。

分享到:
评论

相关推荐

    hibernate 延迟加载深入剖析

    当Hibernate加载一个实体时,默认不会立即加载其关联的实体或集合属性。相反,它会创建一个代理对象来表示这些属性。当程序试图访问这些属性时,Hibernate会在后台异步加载实际的数据。 #### 三、延迟加载的具体...

    hibernate延迟加载解决

    延迟加载是一种优化技术,在软件开发中广泛应用于各种场景,尤其在数据库交互中尤为重要。其核心思想是仅在确实需要某个资源时才加载它,而非一开始就加载所有相关的数据。这种方式能够显著减少初始加载时间和内存...

    Hibernate 延迟加载剖析与代理模式应用

    在现代软件开发中,尤其是在基于Java的企业级应用开发中,Hibernate作为一种流行的ORM(Object Relational Mapping)框架,极大地简化了开发者对数据库的操作。其中,延迟加载(lazy loading)是一项重要的特性,它...

    Hibernate lazy加载FOR Connection

    标题中的“Hibernate lazy加载FOR Connection”指的是Hibernate框架中的一种特性,即懒加载(Lazy Loading)。在Hibernate中,懒加载是一种优化策略,它推迟对关联对象的加载,直到真正需要使用这些对象时才进行加载...

    hibernate懒加载策略.doc

    在Java持久化框架Hibernate中,懒加载(Lazy Loading)是一种优化策略,用于提高应用程序的性能和效率。懒加载的基本思想是“按需加载”,即在实际需要数据时才进行数据库查询,而不是在对象初始化时一次性加载所有...

    Hibernate之数据加载方式

    5. **缓存加载(Caching)**:Hibernate支持二级缓存,可以将经常访问的数据存储在缓存中,提高查询效率。 ### 四、关联加载优化 - **fetch join**:在HQL或Criteria查询中使用`fetch`关键字,可以将关联对象一起...

    Hibernate 加载数据库驱动的 Jar

    在这个场景中,"Hibernate加载数据库驱动的Jar"是指在 Hibernate 应用程序中添加 SQL Server 驱动的 JAR 文件,以便正确地连接到SQL Server数据库。 首先,我们来看一下给定的三个JAR文件: 1. **msbase.jar**:这...

    Hibernate的延迟加载

    集合类型的延迟加载是Hibernate延迟加载机制中最能显著提升性能的部分。在Hibernate中,集合类型的延迟加载通过使用自定义的集合类实现,如`net.sf.hibernate.collection.Set`,而非标准的`java.util.Set`。这样,...

    hibernate使用中与各种数据库字段类型对应类型训练

    - **懒加载和立即加载**:懒加载(Lazy Loading)是Hibernate的一种优化策略,只在真正需要时加载关联对象,而立即加载(Eager Loading)则会在查询时一并加载关联对象。 - **null值处理**:对于非空约束的字段,...

    Hibernate延迟加载介绍.doc

    本文将深入探讨Hibernate中的延迟加载,包括实体对象、集合类型和属性的延迟加载。 一、实体对象的延迟加载 在Hibernate中,实体对象的延迟加载可以通过在映射文件中设置`lazy="true"`来启用。例如,对于名为`...

    hibernate延迟加载

    集合类型的延迟加载是 Hibernate 延迟加载机制中最重要的部分之一。通常,在一对多或多对多的关系中,一个实体可能会关联多个其他实体。如果没有采用延迟加载,那么每次加载实体时都会同时加载所有相关的集合数据,...

    Hibernate延迟加载

    在Hibernate中,延迟加载分为三种主要类型:实体对象的延迟加载、集合类型的延迟加载以及属性延迟加载(在Hibernate 3及以上版本支持)。 ### 实体对象的延迟加载 在Hibernate映射文件中,可以通过将`&lt;class&gt;`标签...

    hibernate中文参考文档

    6. 集合类映射:在Java中集合是常用的,Hibernate支持集合类的映射,这部分将解释如何映射List、Set、Map等集合类型。 7. 组件映射:当一个类的属性是由其他几个类的属性组合而成时,可以使用组件映射。这部分内容...

    Hibernate集合属性的延迟加载.doc

    在 Hibernate 框架中,延迟加载(Lazy Loading)是一种优化数据访问性能的重要技术。它允许我们只在真正需要数据时才从数据库加载,避免一次性加载大量数据导致的内存消耗和性能瓶颈。当我们处理与实体相关的集合...

    关于Clob类型在Hibernate中 的应用小结

    在Hibernate中,Clob类型的字段通常有两种处理方式: 1. **传统JDBC方式**: 在这种模式下,开发者需要直接操作Clob对象,通过PreparedStatement的setClob方法设置Clob值,通过ResultSet的getClob方法获取Clob值。...

    hibernate中文参考文档pdf

    Hibernate是一个开源的对象关系映射(ORM)框架,它为Java开发者提供了一种在Java应用程序中管理和持久化数据到关系数据库的方法。ORM框架能够将复杂的SQL操作和数据库交互转化为简单的对象操作,极大地提高了开发...

    hibernate中文文档

    Hibernate是一款强大的Java持久化框架,它为Java开发者提供了一种对象关系映射(ORM)解决方案,使得在Java应用中管理数据库变得更为简单。这个“hibernate中文文档”压缩包包含的是Hibernate框架的中文版API文档,...

    Hibernate 中文api 等学习资料

    描述中的"hibernate orm框架api中文文档,学习资料,框架详解资料"进一步明确了这些资源的性质,即它们是关于Hibernate ORM框架的API文档、学习教程以及框架的详细解释,都是中文版本,方便中文读者学习。...

    Hibernate中文Api最新参考文档

    Criteria API提供了一种类型安全的方式来构建动态查询,而HQL是一种面向对象的查询语言,类似于SQL但更加抽象。两者都支持复杂的查询条件、分页、排序等功能。 除此之外,Hibernate还提供了第二级缓存(Second-...

    hibernate中文文档 HTML格式

    三、Hibernate操作 1. Session:Hibernate的主要工作单元,它是应用程序和数据库之间的桥梁。`Session`负责保存、更新和删除对象,以及执行SQL查询。 2. CRUD操作:Hibernate支持创建(Create)、读取(Read)、更新...

Global site tag (gtag.js) - Google Analytics