Hibernate集合映射
当蜘蛛网无情地查封了我的炉台,当灰炉的余烟叹息着贫困的悲哀,我依然固执的铺平失望的灰烬
用美丽的雪花写下:相信未来
有时自己是迷惘的,但是再迷惘不要停下脚步,可能你没有目标,但是走着走着就有了梦想。
总结 Set、List、Map、Array集合映射的基本用法
-
Set 在User类中有一个set属性
package com.school.domain; import java.util.Set; public class User { private Integer id; private String name; private Set<String> addressSet; 。。。。。。 }
对应的User.hbm.xml文件中的配置如下:<set name="addressSet" table="user_address" order-by="address desc"> <key column="addId"></key> <element column="address" type="string"></element> </set>
-
table是集合对应的新的表明、key指的user_address表是对应的FK(外键)它参考user的主键、element是user_address的元组。虽然set是无序的但是他的实现类可以按照特定的方式进行排序,当然hibernate中提供了对set进行排序的操作:order-by可以指定set集合的排序方式,但是set集合中的对象必须实现Comparable接口,Set对象要由TreeSet来创建,不能有HashSet创建否则不能排序。表结构示意图:
- List集合:
package com.school.domain; import java.util.Set; public class User { private Integer id; private String name; private List<String> addressList; 。。。。。。 }
-
table是集合对应的新的表明、key指的user_address表是对应的FK(外键)它参考user的主键、element是user_address的元组。虽然set是无序的但是他的实现类可以按照特定的方式进行排序,当然hibernate中提供了对set进行排序的操作:order-by可以指定set集合的排序方式,但是set集合中的对象必须实现Comparable接口,Set对象要由TreeSet来创建,不能有HashSet创建否则不能排序。表结构示意图:
对应的User.hdm.xml
<list name="addressList" table="user_address"> <key column="addId"></key> <list-index column="index_"></list-index> <element type="string" column="address"></element> </list>因为这里的List集合是有顺序的,其在数据库中是按照索引来进行排序的,List集合中可以存在相同的对象。
下面是表的存储结构:
但是这里有一个问题,就是在上面的前两项被删除后,在从数据库中获得user对象的addressList的size是4但是前两个对象是null的,但是假如删除的是后两项就不存在这个问题,原因是List集合在数据库中是按照index_来进行索引,index_的最大值也就是该addressList的长度。
3.Map集合:
因为Map结构就是一个Key对应一个Object,其中key是不可以重复的,Object是可以重复的,因为每个键值对是根据Key来进行取值,所以有一个<map-key 的属性需要配置>
package com.school.domain; import java.util.*; public class User { private Integer id; private String name; private Map<String,String> addressMap; 。。。。。。 }
对应的User.hdm.xml
<map name="addressMap" table="user_addrress"> <key column="addId"></key> <map-key type="string" column="map_key"></map-key> <element column="address" type="string"></element> </map>
对应的表结构如下图:
4.array 数组映射:
因为数组的结构和List的结构是相同的,所以在配置上面也是相似的
package com.school.domain; import java.util.*; public class User { private Integer id; private String name; private String[] addresses; 。。。。。。 }对应的User.hdm.xml配置是:
<array name="addresses" table="user_address"> <key column="addId"></key> <list-index column="index_"></list-index> <element type="string" column="address"></element> </array>
对应的表结构和List一样:
相关推荐
本主题将深入探讨Hibernate集合映射与关联关系,包括"student与Score的Map集合关系"、"student与class的多对一"以及"一对多映射"的概念。 首先,让我们理解一下Hibernate中的集合映射。在关系型数据库中,一个实体...
《Hibernate集合映射详解》 Hibernate作为Java领域中的一款强大持久化框架,其核心功能之一就是对象关系映射(ORM),使得开发者可以方便地在Java对象与数据库表之间进行交互。其中,集合映射是Hibernate中非常关键...
在深入探讨Hibernate集合映射中的`inverse`与`cascade`属性之前,我们首先需要理解Hibernate框架的基本概念。Hibernate是一个开放源代码的对象关系映射(ORM)框架,它为Java应用程序提供了一种将对象模型与数据库...
Hibernate集合映射是ORM的重要组成部分,它使得Java对象和数据库表之间的关系更加直观和灵活。根据实际需求选择合适的集合类型,可以有效地处理复杂的数据关系。在实际应用中,应结合业务场景、数据特性以及性能需求...
Hibernate集合映射的基本概念 集合映射是Hibernate中一个核心的概念,它允许我们将数据库表中的多对一(OneToMany)、一对多(ManyToOne)、多对多(ManyToMany)等关系映射到Java对象的集合属性上。通过这种方式...
### Hibernate集合映射基础 1. **集合类型**:Hibernate支持多种集合类型映射,如Set、List、ArrayList、LinkedList、Map等。Set是最常见的集合映射类型,它不允许重复元素,与数据库中的唯一约束相对应。 2. **...
Hibernate 集合映射详解 Hibernate 是一个流行的Java持久化框架,它提供了多种集合映射类型,以满足不同的业务需求。在 Hibernate 中,集合映射是指将 Java 集合类型与数据库表之间的映射关系。常见的集合映射类型...
本文将深入讲解Hibernate中的集合映射,包括set、list、map和bag的配置与使用。 1. **Set集合映射** Set集合不允许有重复元素,因此在Hibernate中,set映射通常用于表示唯一性关系,如一对多关系。在Hibernate映射...
### JAVA培训-HIBERNATE的集合映射 #### 概述 本文主要聚焦于Hibernate框架下的集合映射机制,特别是针对`Set`、`List`、`Array`、`Map`、`Bag`五种集合...希望本文能帮助读者更好地理解和应用Hibernate集合映射技术。
标题中的“hibernate bag 集合映射”指的是Hibernate框架中的一种关系映射机制。Hibernate是一个流行的Java ORM(对象关系映射)框架,它允许开发者将数据库表与Java类进行映射,使得在处理数据库操作时可以使用面向...
**标题:“Hibernate List集合映射”** 在Java的持久化框架Hibernate中,集合映射是将数据库中的表与Java对象的集合属性关联的过程。List集合映射是其中常见的一种方式,它允许我们将数据库中的一组相关记录映射到...
这种映射可以通过集合类型如List、Set等来表示子项的集合。 2. **多对多关联映射**: 多对多关联是两个实体之间都可以有多个匹配项的情况,比如学生和课程的关系。在Hibernate中,我们可以使用`@ManyToMany`注解来...
在Java持久化框架Hibernate中,映射集合属性是常见的需求,特别是对于那些具有一对多、多对多关系的实体对象。这里的"List"是Java集合框架中的一个接口,用于存储一组有序的元素,而在Hibernate中,它常用来映射...
Hibernate,作为Java中广泛使用的对象关系映射(ORM)框架,提供了一种优雅的方式来映射枚举类型到数据库。本文将深入探讨Hibernate如何映射枚举类型,并给出实际应用示例。 ### Hibernate枚举映射方式 #### 1. `@...
在Java的持久化框架Hibernate中,集合映射是至关重要的一个概念,它允许我们将数据库中的表与Java对象的集合属性进行关联。本教程主要讲解了如何在Hibernate中配置和使用集合映射,以便更好地理解和应用这个强大的...
这里定义了一个名为`addresses`的集合,它映射到`person_address`表,并通过`person_id`列与`Address`类建立了一对多的关系。 此外,如果需要实现双向的一对多关系,还需要在`Address`类中添加对`Person`的引用: ...
在Java的持久化框架Hibernate中,数组映射是一种常见的数据模型转换方式,它允许我们将数据库中的数据以数组的形式存储在Java对象中。本篇将详细探讨`hibernate array 数组映射`的相关知识点,包括其原理、配置、...