`
吕金含
  • 浏览: 89828 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

hibernate检索的使用

 
阅读更多
1.hibernate中检索主要有以下:
lazy=true|false|extra
fetch=select subselect join迫切的左外链接
batch-size 检索的数量

cascade="all" 级联操作

2.第一种lazy的使用:

2.1 Classes.hbm.xml

<set name="stus" lazy="false" >
<key column="class_id"></key>
<one-to-many class="Student"/>
</set>
</class>
</hibernate-mapping>
2.2 使用lazy="false"时效果如下;
Hibernate:
select
student0_.ID as ID1_1_0_,
student0_.NAME as NAME2_1_0_,
student0_.class_id as class_id3_1_0_
from
STUDENT student0_
where
student0_.ID=?
Hibernate:
select
classes0_.ID as ID1_0_0_,
classes0_.NAME as NAME2_0_0_
from
CLASSES classes0_
where
classes0_.ID=?
Hibernate:
select
stus0_.class_id as class_id3_0_1_,
stus0_.ID as ID1_1_1_,
stus0_.ID as ID1_1_0_,
stus0_.NAME as NAME2_1_0_,
stus0_.class_id as class_id3_1_0_
from
STUDENT stus0_
where
stus0_.class_id=?
Student [id=1, name=tom, cls=Classes [id=1, name=大数据0302]]

2.2 使用lazy="true"时,效果如下;

Hibernate:
select
student0_.ID as ID1_1_0_,
student0_.NAME as NAME2_1_0_,
student0_.class_id as class_id3_1_0_
from
STUDENT student0_
where
student0_.ID=?
Hibernate:
select
classes0_.ID as ID1_0_0_,
classes0_.NAME as NAME2_0_0_
from
CLASSES classes0_
where
classes0_.ID=?
Student [id=1, name=tom, cls=Classes [id=1, name=大数据0302]]

2.3 使用lazy="extra"时,效果如下;

Hibernate:
select
student0_.ID as ID1_1_0_,
student0_.NAME as NAME2_1_0_,
student0_.class_id as class_id3_1_0_
from
STUDENT student0_
where
student0_.ID=?
Hibernate:
select
classes0_.ID as ID1_0_0_,
classes0_.NAME as NAME2_0_0_
from
CLASSES classes0_
where
classes0_.ID=?
Student [id=1, name=tom, cls=Classes [id=1, name=大数据0302]]

3 第二种 fetch的使用

3.1 Classes.hbm.xml

<set name="stus" fetch="join" >
<key column="class_id"></key>
<one-to-many class="Student"/>
</set>

3.2 fetch="join"时:

Hibernate:
select
student0_.ID as ID1_1_0_,
student0_.NAME as NAME2_1_0_,
student0_.class_id as class_id3_1_0_
from
STUDENT student0_
where
student0_.ID=?
Hibernate:
select
classes0_.ID as ID1_0_1_,
classes0_.NAME as NAME2_0_1_,
stus1_.class_id as class_id3_0_3_,
stus1_.ID as ID1_1_3_,
stus1_.ID as ID1_1_0_,
stus1_.NAME as NAME2_1_0_,
stus1_.class_id as class_id3_1_0_
from
CLASSES classes0_
left outer join
STUDENT stus1_
on classes0_.ID=stus1_.class_id
where
classes0_.ID=?
Student [id=1, name=tom, cls=Classes [id=1, name=大数据0302]]

3.2 fetch="select"时:

ibernate:
select
student0_.ID as ID1_1_0_,
student0_.NAME as NAME2_1_0_,
student0_.class_id as class_id3_1_0_
from
STUDENT student0_
where
student0_.ID=?
Hibernate:
select
classes0_.ID as ID1_0_0_,
classes0_.NAME as NAME2_0_0_
from
CLASSES classes0_
where
classes0_.ID=?
Student [id=1, name=tom, cls=Classes [id=1, name=大数据0302]]





分享到:
评论

相关推荐

    HIBERNATE检索策略

    标题:“HIBERNATE检索策略” 描述:本文深入解析了HIBERNATE的检索策略,为读者提供了一条清晰的学习路径,重点分析了HIBERNATE中的抓取策略及其应用场景,帮助开发者更有效地管理和优化数据加载过程。 在...

    java-Hibernate 检索

    Hibernate 是一个流行的 Java 持久层框架,它提供了多种检索数据的方式,包括导航对象图检索、OID 检索、HQL 检索、QBC 检索和本地 SQL 检索等。下面将详细介绍每种检索方式。 一、导航对象图检索 导航对象图检索...

    Hibernate数据检索(HQL)笔记

    本文档基于魔乐科技李兴华老师的 Hibernate 教程笔记进行整理与扩展,主要介绍了 Hibernate 的数据检索方法,特别是 HQL(Hibernate Query Language)的使用技巧。 #### 二、HQL 基础 HQL 是一种面向对象的查询语言...

    day36-hibernate检索和优化 02-Hibernate检索方式:简单查询及别名查询

    本教程将深入探讨"day36-hibernate检索和优化 02-Hibernate检索方式:简单查询及别名查询"的主题,通过源码分析和实际工具的应用,来提升数据库查询的效率。 首先,我们了解Hibernate的检索方式。在Hibernate中,...

    day36 04-Hibernate检索方式:多表连接查询

    标题中的“day36 04-Hibernate检索方式:多表连接查询”表明这是一个关于Hibernate框架的教程,重点讲解如何在Hibernate中进行多表连接查询。在这个主题中,我们将深入探讨Hibernate的ORM(对象关系映射)机制以及...

    Hibernate数据检索(HQL)笔记

    在本笔记中,我们将学习如何使用 Hibernate 的 Criteria API 进行数据检索,包括检索指定姓名的用户、检索年龄大于 25 岁的用户和检索年龄小于 25 岁的用户等。 检索指定姓名的用户 在检索指定姓名的用户时,我们...

    基于Spring的Hibernate Search全文检索功能示例

    在现代Web应用开发中,全文检索功能已经成为提升...通过以上步骤,你可以在Spring应用中成功集成并使用Hibernate Search实现全文检索功能。记住,实际项目中需要根据具体需求进行调整和优化,以达到最佳的搜索体验。

    hibernate5--4.检索方式及策略

    一、Hibernate检索方式 1. **HQL(Hibernate Query Language)**: HQL是Hibernate提供的面向对象的查询语言,类似于SQL,但它是基于类和对象的。你可以通过HQL来查询、更新和删除对象,而无需关心底层的SQL语法。...

    Hibernate的检索方式

    ### Hibernate的五种检索方式详解 #### 一、导航对象图检索方式 导航对象图检索是一种常见的对象关联查询方式。这种方式通常用于加载已经存在于内存中的对象,并通过这些对象访问与其关联的对象。例如,在一个订单...

    Hibernate检索方式

    ### Hibernate检索方式详解 #### 一、概述 Hibernate是一个强大的对象关系映射(ORM)框架,它可以将Java对象与数据库表进行映射,使得开发者能够更方便地进行数据的持久化操作。在Hibernate中,提供了多种检索...

    Hibernate的检索策略

    ### Hibernate的检索策略详解 #### 一、概述 在Java持久化框架Hibernate中,检索策略是一种重要的机制,它主要用于控制对象何时以及如何加载到应用程序内存中。合理的检索策略不仅可以提高应用性能,还能简化代码...

    使用 hibernate-search 实现全文检索及文档管理的例子

    **使用Hibernate Search实现全文检索及文档管理** 在Java开发中,全文检索和文档管理是常见的需求,特别是对于大型的企业级应用。Hibernate Search是Hibernate ORM框架的一个扩展,它提供了对数据库中的对象进行...

    hibernate基础 注解开发 检索

    ### Hibernate基础:注解开发与...综上所述,通过使用Hibernate的注解开发,不仅可以简化实体类的配置,还可以利用其丰富的关联映射和检索机制来进行高效的数据操作。这对于Java开发者来说是一个非常强大且实用的工具。

    Hibernate使用指南tutorial

    **Hibernate使用指南** Hibernate是一款强大的Java对象关系映射(ORM)框架,它简化了数据库操作,使得开发人员能够使用面向对象的方式处理数据。本指南将深入探讨Hibernate的核心概念,包括配置、实体映射、会话...

    使用hibernate search实现全文检索和文档管理的例子

    使用hibernate search实现全文检索和文档管理功能: 1 全文检索 2 手动生成索引 3 文档上传(自动建立索引) 4 文档更新(自动建立索引) 5 文档删除 使用说明: 1 需要先恢复数据库 searchDB_2008sqlserver.bak 2 ...

    中文分词检索IKAnalyzer3.2.3Stable+hibernate-search3.4.0.Final

    3. **数据存储**:使用Hibernate ORM进行数据库操作,同时通过Hibernate Search建立全文索引,提高检索效率。 4. **全文检索**:利用Lucene提供的功能实现高效的全文检索,这里使用了Lucene 3.1版本。 5. **分词处理...

    hibernate的检索

    【Hibernate检索策略】 Hibernate提供三种主要的检索策略:立即检索、延迟检索和迫切左外连接检索。 1. **立即检索**:这种策略将立即加载关联的对象,无论对象是持久化状态还是游离状态。优点是应用程序可以方便...

Global site tag (gtag.js) - Google Analytics