`

hibernate 映射文件中 fetch 跟lazy

阅读更多

fetch 和 lazy 主要是用来级联查询的

 

而 cascade 和 inverse 主要是用来级联插入和修改的

 

fetch参数指定了关联对象抓取的方式是select查询还是join查询,

    select方式时先查询返回要查询的主体对象(列表),再根据关联外键 id,每一个对象发一个select查询,获取关联的对象,形成n+1次查询;

    而join方式,主体对象和关联对象用一句外键关联的sql同时查询出来,不会形成多次查询。


如果你的关联对象是延迟加载的,它当然不会去查询关联对象。

另外,在hql查询中配置文件中设置的join方式是不起作用的(而在所有其他查询方式如get、criteria或在关联获取等等都是有效的),会使用 select方式,除非你在hql中指定join fetch某个关联对象。

fetch策略用于定义 get/load一个对象时,如何获取非lazy的对象/集合。 这些参数在Query中无效。

分享到:
评论

相关推荐

    Hibernate映射配置实例大全(详细总结)

    综上所述,"Hibernate映射配置实例大全"涵盖的内容广泛,包括基本的配置文件设置、实体类的XML和注解映射、集合映射、加载策略、事务管理和缓存配置等。通过深入学习和实践这些实例,开发者可以熟练地运用Hibernate...

    hibernate 中的lazy属性祥解.txt

    在Hibernate中,当设置关联属性的`fetch`或`lazy`属性为`true`时,表示该关联属性采用懒加载方式。这意味着,在获取主对象时,Hibernate不会立即加载与其关联的子对象。例如,在用户(User)与帖子(Post)之间的多...

    Hibernate Fetch 的作用

    在Hibernate中,主要有两种Fetch策略:Eager(急切)和Lazy(懒惰)。默认情况下,Hibernate使用Lazy策略,这意味着关联对象不会立即加载,除非显式访问它们。这有助于提高应用程序的性能,因为不必要的数据不会被...

    Hibernate教程20_关系映射案例三

    2. **配置文件**:在Hibernate中,`hibernate.cfg.xml`是核心配置文件,它包含了数据库连接信息、实体类映射等设置。在案例三中,我们需要关注这个文件中关于数据库URL、用户名、密码以及实体类的配置。 3. **实体...

    Hibernate映射解析 七种映射关系 后端 - Java.zip

    这个名为“Hibernate映射解析 七种映射关系 后端 - Java”的压缩包文件显然包含了关于Hibernate映射关系的详细讲解。让我们深入探讨一下Hibernate的映射解析及其七种主要的映射关系。 首先,Hibernate通过XML映射...

    hibernate在集合上的lazy策略

    1. **Hibernate集合映射**:介绍如何在映射文件或注解中配置集合的懒加载,如`@OneToMany(lazy = FetchType.LAZY)`或`<set lazy="true">`。 2. **Proxy机制**:解释Hibernate如何创建代理对象,以及这个代理对象...

    hibernate关联映射的作用和常用属性解释

    同时,在映射文件中添加相应的配置: ```xml ``` 通过上述配置,可以有效地管理和操作一对多的关联关系。 综上所述,了解并掌握Hibernate中的关联映射及其常用属性对于开发高质量的应用程序至关重要。这些...

    hibernate映射的注解配置

    以下是对标题和描述中涉及的Hibernate映射注解的详细解释: 1. **@Entity(name="EntityName")**:此注解用于标记一个类作为JPA实体,它代表数据库中的一个表。`name`参数是可选的,用于指定实体在数据库中的表名,...

    hibernate在单端关联上的lazy策略

    1. **配置懒加载**:在Hibernate的映射文件或注解中,可以通过`fetch="lazy"`(XML映射)或`@OneToMany(mappedBy = "property", fetch = FetchType.LAZY)`(注解映射)来指定关联的懒加载。 2. **代理机制**:...

    hibernate的多种映射关系

    在 Hibernate 中,映射关系是将数据库表与 Java 类之间的关联方式,使得对象模型可以与关系模型无缝对接。本篇文章将详细探讨 Hibernate 中的多种映射关系。 1. **一对一映射 (One-to-One)** 一对一映射表示两个...

    hibernate 主键一对一映射(单向) 实例(java类)

    5. **配置Hibernate映射文件**:虽然在JPA中可以直接使用注解进行配置,但在一些情况下,你可能还需要为每个实体创建对应的Hibernate XML映射文件,以进一步自定义映射细节。 6. **数据操作**:在实际应用中,你...

    hibernate的lazy策略forClass

    在压缩包文件`hibernate_lazy_for_class`中,可能包含了相关的代码示例、配置文件或日志文件,用于更深入地学习和分析Hibernate的懒加载策略在实际项目中的应用。通过阅读和分析这些资源,开发者可以更好地理解和...

    Hibernate_关联关系映射配置

    在Java开发中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它允许开发者使用面向对象的方式来操作数据库,极大地简化了数据库操作。本教程将详细讲解Hibernate中的关联关系映射配置,帮助你理解和掌握如何...

    hibernate 映射-一对多双向

    标题中的“hibernate 映射-一对多双向”指的是在Java Hibernate框架中处理数据库关系映射中的一对多关联关系,并且这种关联是双向的。Hibernate是一个对象关系映射(ORM)工具,它允许开发者用Java对象来表示数据库...

    hibernate的关系映射

    1. **XML映射文件**: 在传统的Hibernate配置中,关系映射信息存储在`.hbm.xml`文件中。每个类对应一个映射文件,其中包含类名、属性映射以及关系映射。 2. **注解映射**: 随着Java 5的发布,Hibernate引入了注解...

    hibernate 多对一映射关联配置

    在Hibernate的XML映射文件(如.hbm.xml)中,我们使用`<many-to-one>`标签来定义多对一关系。例如: ```xml ``` 这里,`name`属性指定了在Java对象中引用的属性名,`class`属性指定被引用实体的全限定类名,`...

    详解Hibernate一对一映射配置

    在Java持久化框架Hibernate中,一对一(One-to-One)映射是对象关系映射的一种常见方式,用于表示两个实体之间一对一的关系。这种关系通常出现在一个实体的实例只能与另一个实体的单个实例相关联的情况。下面我们将...

    hibernate 关联映射(一) many to one

    懒加载意味着关联对象只有在真正需要时才会从数据库加载,这可以通过在`@ManyToOne`或映射文件中设置`fetchType.LAZY`实现。级联操作(如`CascadeType.ALL`)可以自动处理关联对象的保存、更新和删除。 在数据库...

    Hibernate 相关映射关系

    在Java世界中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它简化了数据库操作,使得开发者可以使用面向对象的方式来处理数据。本篇将详细探讨Hibernate中的映射关系,主要包括实体之间的一对一、一对多、...

Global site tag (gtag.js) - Google Analytics