hibernate映射
集合属性大致分为二种:
单纯的集合属性,像List,Set或数组等集合属性。
2,Map集合属性,每个属性值多有相对应的Key映射。
集合映射属性分为以下几种:
List:用于映射List集合属性,List是有序的,可重复的.
Set:用于映射Set集合属性,Set是无序的,不可重复.
Map:用于映射Map集合属性,具有键值对属性(Key ,value);
Array:用于映射数组集合属性.为有序可重复.
Bag:用于应映射无序集合属性,当我们用Bag作映射时,我们定义集合时,我们不应当使用具体的集合,而是用集合的父类接口:Collection.
相对几种集合的应用:
List:
由于他是有序的集合,因此用Hibernate持久化到数据库中时,"必须增加到例表示集合的顺序"~,集合属性只能以接口形式声明,因为当Hibernate持久化某个实例时, Hibernate会自动把集序中的集合实现类替换成Hibernate自己的实现类。代码 如下:
private int id;
private int age;
private String name;
private List<Person> schools;
那么我们如何来映射集合中的元素到数据库中呢?在hibernate的映射文件中,我们可以增加对<list></list>标签来完成,实际如下:
<list name="schools" table="school_table">//table是我们指定的把集合元素映射到哪个表中.
<key column="person_id"></key>//这里是指出主表的外键是哪个,这里我们用主键例来映射,一般开发也是这样做。(主表的外键可认为是子表的主键)
//主表与子表之间的关联就是通过外键来维持的,
<list-index column="school_indext"></list-index>//用来指定集合的序列,因为list集合是有序的,这也就是我们上面提到的要必须增加的一例
<element column="school" type="string" length="30"></element>//这个标签是把list里的元素一个一个放到column指定的例名下,type指定放入的类形 </list>
Array:数组的方式与List的完全一样,只要把标签改成<array></array>就可
Set:与List,Array一样,只是Set是无序的,在<set></set>里不用indext标签就可以了.
Bag:使用bag映射集合时,对于Set集合不好用,这是唯一的要点,对于List,Array,多没有问题。
同时,不管是哪种集合,使用bag映射之后多会变为无序的集合,而集合属性对应的表没有主键.
Map:Map不仅要映射属性值,还要映射属Key,也就是key,value多要映射。Hibername将会以外键和key例作为联合主键.
<map name="scores">
<key column="student_id"></key>
<map-key type="string" column="subject" length="10"></map-key>//必须指明类型,用于映射Map的key
<element type="int" column="score" length="3" not-null="true"></element>//也要指明类型,用来映射Map的value.
</map>
映射组件属性:
组件属性的意思是持久化类的属性不是基本数据类型,也不是String类型,而是某个组件的变量,该组件属性类型可以是自定义类型.
然后hibernate不能直接用property映射,为了映射组件属性,hibernate提供了component无系。每个component元素映射一个组件,组件属性必须指定该属性的类形.
Component元素中的class属性用于确定组类的类型.
组件的一个浅显例子,一个工人,他有月薪,年薪,带薪休候,这些是就可以做一个组件放到一起。组件是一个没有ID的类。
<component name="pay" class="Pay">
<property name="monthlPay" column="month_pay"></property>
<property name="yearlPay" column="year_pay"></property>
<property name="vocationWithPay" column="vactionwith_pay"></property>
</component>
集合映射组件属性:
集合除了存放String 字符串以外,还可以存放组件类形,实际上更多情况下,集合组件存放的都是组件类型.这时我们就要用到composite-element子元
素来映射集合元素,刚时还要class来指定元素的类型.用property来指定组件类型的子属性.
<list name="jobHistories" table="job_table">
<key column="worker_id"></key>
<list-index column="job_index"></list-index>
<composite-element class="Job">
<property name="position" column="position_name"></property>
<property name="company" column="company_name"></property>
<property name="starting" column="`starting`" type="date"></property>
<property name="ending" column="`ending`" type="date"></property>
</composite-element>
</list>
分享到:
相关推荐
"自动生成 Hibernate 映射文件和实体类" 自动生成 Hibernate 映射文件和实体类是使用 MyEclipse 工具来实现的,这可以大大提高开发效率,减少开发时间。下面将详细介绍如何使用 MyEclipse 自动生成 Hibernate 映射...
hibernate映射文件是Java开发中用于对象关系映射(ORM)的重要组成部分,它将数据库表与Java类之间的关系进行定义,使得开发者无需编写大量的SQL语句,就能实现对数据库的操作。`生成hibernate映射文件工具`是为了...
首先,我们需要了解Hibernate映射文件的基本结构。通常,一个映射文件以`.hbm.xml`为扩展名,它使用XML格式来描述Java类和数据库表的对应关系。映射文件包含了类名、表名、字段及其数据类型等信息。例如: ```xml ...
**hibernate映射与查询** Hibernate 是一个流行的 Java 应用程序开发框架,它提供了一个持久层解决方案,简化了数据库操作。对于初学者来说,理解 Hibernate 的映射和查询机制是至关重要的,因为它们构成了 ...
【压缩包子文件的文件名称列表】:“hibernate映射文件自动生成.doc”很可能是这篇博文的文档形式,其中详细介绍了具体的操作步骤、使用工具或者自定义脚本,以帮助开发者理解并应用自动化的映射文件生成过程。...
Hibernate映射文件是XML格式的文件,它定义了数据库表与Java实体类之间的对应关系,包括字段映射、主键策略、关联关系等。映射文件让开发者无需编写SQL语句,就能通过Java对象进行数据库操作。 2. **MyEclipse ...
build.xml 手写自动生成Hibernate映射文件和配置文件源代码
### 常用Hibernate映射配置详解 #### 1. hibernate-mapping节点解析 `hibernate-mapping`节点是Hibernate映射文件中的顶级节点,用于定义一系列配置选项,控制整个映射文件的行为和映射规则。这些配置包括数据库...
3. **逆向工程(Hibernate Reverse Engineering)**:选中要映射的数据库表,右键选择`Hibernate Reverse Engineering`,这是MyEclipse提供的将数据库表转换为Hibernate映射文件和实体类的工具。 4. **配置生成选项...
### Hibernate映射笔记详解 #### Hibernate映射文件与配置关系 Hibernate映射是ORM(对象关系映射)框架中的一项关键技术,它允许开发者在数据库表和Java对象之间建立映射关系,从而简化了数据访问层的开发工作。...
而MyEclipse作为一款强大的Java集成开发环境,提供了对Hibernate的良好支持,包括自动生成Hibernate映射文件的功能。本文将详细介绍如何在MyEclipse中创建和使用Hibernate映射文件。 首先,理解Hibernate映射文件...
确保数据库与Hibernate映射文件一致,能正确地反映实体之间的关系。导入DBO到SQL Server数据库后,就可以通过Hibernate的Session接口进行CRUD(创建、读取、更新、删除)操作了。 在开发过程中,理解并熟练运用这些...
"Hibernate映射配置实例大全"是一个全面深入的资源,旨在帮助开发者理解和掌握如何有效地配置Hibernate以实现对象关系映射(ORM)。在这个文档中,我们将探讨各种关键的映射配置方法,以及相关的实例。 首先,我们...
标题“Hibernate映射树形结构”指的是如何用Hibernate来存储和操作具有层级关系的数据。 1. **单表映射策略**: Hibernate可以使用单个表来存储树形结构,通过一个自增的`id`字段以及一个表示父节点的`parent_id`...
本文将详细探讨如何使用Hibernate映射集合属性List,以及如何让Hibernate自动创建对应的数据库表,无需手动编写SQL语句。 首先,我们需要理解Hibernate的映射机制。Hibernate通过ORM(对象关系映射)技术将Java对象...
Hibernate映射文件,通常以`.hbm.xml`为扩展名,是Hibernate用来定义Java类与数据库表之间关系的配置文件。它包含了关于实体类与数据库表的字段对应、主键生成策略、关联关系等信息。通过这些映射文件,Hibernate...
下面我们将详细介绍如何在MyEclipse中自动生成Hibernate映射文件。 首先,我们需要建立数据库连接。在MyEclipse中,可以通过`Window`菜单打开`MyEclipse Database Explorer`视图。在这里,你可以创建新的数据库连接...