说明:在前面我们已经使用过set
集合类型,其实除了set
外,
在Hibernate
中还有list
、Bag
、Map
这三种集合类型。
<!-- [if !supportLists]-->1.
<!-- [endif]-->list
集合的使用:
在前面的“一对多的关系”,已经使用过<set>
,为了保存以前的操作,现重建一个名为“TheCollectionMapping
”的新项目,把以前的“一对多关系”中用到的相关内容复制到此项目下即可。
但有几点需要特别注意:(1
)同样注意导入包,并注意主配置文件对实体配置文件的关联 (2
)需要修改原Department
中的<set>
内容为:private
List<Employee>
emps
;
并修改原实体配置文件<set>
配置内容为<list>
内容如下:
<
list
name
=
"emps"
>
<
key
column
=
"depart_id"
/>
<
list-index
column
=
"order_by"
/>
<
one-to-many
class
=
"Employee"
/>
</
list
>
(3
)并注意测试类中相应的修改
(4
)强调说明的是list
查询时,具有顺序性,可以查看此项目下测试类的说明。(5
)再次强调,为了充分理解一些问题,我们可以查看执行后表结构,也可以注释掉一些内容查看异常情况,并学会解决异常。注意配置文件中相关配置的作用,并尝试探索底层实现。
2.bag
集合的使用:
如果在实体类中使用了List
类型的属性,而我们并不希望保证集合顺序(保证集合顺序会采用排序算法,因而会占一些CPU
资源)可以在配置文件中使用<bag>,
它的使用情况与<list>
唯一不同的就是不保证集合顺序。
3.map
集合的使用:
一般是和实体类中java.util.Map
属性进行配合使用,而且使用情况较少。除非某些特殊要求。 总结使用规则:大部分情况下使用<set>
;需要保证集合顺序时使用<list>
;想用java.util.List
而不想保证顺序时,使用〈bag
〉;<map>
作为特殊使用。配置也基本一样,只是在<map>
元素下多了<map-key>
4.
使用集合中的注意事项:
(1
)在实体类中集合只能被定义成接口而不能定义成具体类,因为集合会在运行时被替换成Hibernate
的实现,而事实上把实体类的属性定义成接口也更便于扩展及良好的维护。这里不防提出一个原则,“尽量用接口定义”。(2
)Hibernate
操作List
持久对象时,会用
org.hibernate.collection.PersistentList
重新实现List
接口,操作完成后会把这个实现类重新setXXX
放置。具体请参见TheCollectionMapping
项目下的
OneToManyTest
类说明。其它的集合对象也是一样的道理。
分享到:
相关推荐
【Hibernate入门示例】 Hibernate是一款强大的Java对象关系映射(ORM)框架,它极大地简化了数据库操作,使得开发者可以使用面向对象的方式处理数据库事务。在本文中,我们将深入探讨Hibernate的核心概念,包括配置...
- 本篇概述了Hibernate入门所需了解的关键知识点,从环境搭建到核心概念再到实际应用场景均有涉及。学习Hibernate不仅可以提升开发效率,还能帮助开发者更好地理解ORM框架的工作原理和技术优势。通过上述内容的学习...
### hibernate入门知识点详解 #### 一、Hibernate简介与应用场景 **Hibernate** 是一款开源的对象关系映射(ORM)框架,它提供了强大的解决方案,用于处理Java应用中的数据持久化问题。对于初学者来说,理解...
14. **集合映射**:例如List、Set、Map等集合类型的字段与数据库表的关联映射。 15. **懒加载和立即加载**:理解何时使用懒加载(延迟加载)以提高性能,以及何时需要立即加载关联对象。 16. **更新和删除操作**:...
本学习资料集合了多个关于Hibernate的重要主题,包括对象关系映射的基础、持久化机制、查询语言以及不同类型的关联关系,旨在帮助学习者深入理解并掌握Hibernate的核心概念和技术。 1. **对象状态及一对多关联** ...
Hibernate是Java领域中一款强大的对象关系映射(ORM)框架,它...类似地,我们可以配置其他类型的关联,以满足不同场景的需求。学习和掌握Hibernate的关联映射,将极大地提高我们在Java项目中的开发效率和代码质量。
在Hibernate中,一对多关系是常见的实体关系映射类型,表示一个实体可以与多个其他实体相关联。例如,一个用户可以有多个订单,这就是一对多关系。配置一对多关系主要涉及以下步骤: 1. 在实体类中定义集合属性,...
1. Hibernate入门:介绍如何设置Hibernate环境,包括JDBC驱动、配置文件(hibernate.cfg.xml)的编写以及实体类的创建。 2. 映射基础:详细解释了如何使用Hibernate的注解或XML文件将Java类映射到数据库表,包括...
【标题】:“最经典的hibernate教程_从入门到精通_第二篇” 在这个教程中,我们将深入探讨Java持久化框架Hibernate的核心概念和技术,帮助你从初学者逐步成长为精通Hibernate的开发者。作为“从入门到精通”系列的...
例如,如果 `Person` 类有一个集合类型的属性 `Set<PhoneNumber>`,那么就可以定义一个单向集合关联。 - **1.3.3 处理关联** 学习如何在代码中访问和修改关联关系,包括如何使用集合操作方法(如 add、remove 等...
1. Hibernate入门 1.1. 前言 1.2. 第一部分 - 第一个Hibernate应用程序 1.2.1. 第一个class 1.2.2. 映射文件 1.2.3. Hibernate配置 1.2.4. 用Ant构建 1.2.5. 启动和辅助类 1.2.6. 加载并存储对象 1.3. 第...
#### 一、简介与入门 **Hibernate Validator** 是一个流行的 Java 验证框架,它实现了 **JSR 349**(即 Java Bean Validation API)规范,提供了强大的验证功能,帮助开发者确保应用程序中的数据符合预定的规则。本...
1. Hibernate入门 1.1. 前言 1.2. 第一部分 - 第一个Hibernate应用程序 1.2.1. 第一个class 1.2.2. 映射文件 1.2.3. Hibernate配置 1.2.4. 用Ant构建 1.2.5. 启动和辅助类 1.2.6. 加载并存储对象 1.3. 第...
1. Hibernate入门 1.1. 前言 1.2. 第一部分 - 第一个Hibernate应用程序 1.2.1. 第一个class 1.2.2. 映射文件 1.2.3. Hibernate配置 1.2.4. 用Ant构建 1.2.5. 启动和辅助类 1.2.6. 加载并存储对象 1.3. 第...
例如,`@NotNull`用于确保一个字段或属性不为空,而`@Size`则可以限制字符串、集合等类型的大小范围。 3. **验证执行**:一旦定义了约束,验证过程通常是自动的,但在某些情况下,你可能需要手动调用`Validator`...
在入门Hibernate的过程中,我们需要完成以下步骤: 1. 导入必要的库:为了使用Hibernate,需要在项目中添加Hibernate的jar包,这些包包含了所有必要的API和依赖,使得我们能够利用其功能。 2. 定义实体类:实体类...
#### Hibernate入门与配置 - **配置流程**: 1. **环境搭建**:配置开发环境,包括安装必要的软件和工具,如JDK、IDE等。 2. **创建实体类**:定义Java实体类,用于表示数据库表中的记录。 3. **编写映射文件**...
- Hibernate 支持多种集合类型的映射,例如 List、Set 和 Map 等,可以根据具体需求选择合适的集合类型。 4. **事件监听机制**: - Hibernate 提供了丰富的事件监听机制,可以在特定的时机执行自定义的逻辑,例如...