`
fehly
  • 浏览: 248378 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Hibernate的集合映射

阅读更多

Set 接口

 

set类型的对象,被加入的对象不能重复,同时被加入的对象也没有固定的顺序

Hashset

import java.util.HashSet;
import java.util.Iterator;
//Hashset 不记录先后顺序,不能加重复的
public class HashSetExample {
	public static void main(String[] args)
	{
		HashSet set =new HashSet();
		set.add(new Integer(30));
		set.add(new Double(20.5));
		set.add("I am Narcissus");
		set.add(new Person());		
		Iterator it=set.iterator();
		//枚举输出或者foreach
		while(it.hasNext())
		{
			System.out.println(it.next());
		}
	}
}

LinkedHashSet

import java.util.LinkedHashSet;
import java.util.Set;
public class LinkedHashSetExample {
//记录先后顺序,但不能添加重复
	public static void main(String[] args) {
		Set set = new LinkedHashSet();
		set.add(new Integer(30));
		set.add(new Double(20.5));
		set.add(new Double(100.00));
		set.add(new Integer(90));	
		for(Object o:set)
		{
			System.out.println(o);
		}
		
	}

}

TreeSet

import java.util.Set;
import java.util.TreeSet;
public class TreeSetExample {
//可以排序,按照升序排列元素,不可以重复
	public static void main(String[] args) {
		Set set = new TreeSet();
		set.add(new Integer(30));
		set.add(new Integer(20));
		set.add(new Integer(100));
		set.add(new Integer(90));	
		for(Object o:set)
		{
			System.out.println(o);
		}

	}

}

 

Set映射

使用set接口的实现类,实现对持久化对象保存相关联的数据。

例如:用户定义一个User类,User类中使用Set对象保存用户的多个email 

<!-- table="email"是email的表 ,column="email是email中的email字段-->
		<set name="emails" table="email">
			<key column="userid" foreign-key="id" />
			<element type="java.lang.String" column="email" />
		</set>

 

List接口

 

List对象所包含的对象,可以重复加入,同时还会记录加入的对象的先后顺序。

ArrayList

记录先后顺序,可以加入重复的

LinkedList

记录先后顺序,可以加入重复的,效率比arraylist稍高

 

list映射

存储list对象的集合时,需要在数据库一并存储记录的顺序

<list name="emails" table="email">
			<key column="userid" foreign-key="id" />
			<index column="idx" type="java.lang.Integer"></index>
			<element type="java.lang.String" column="email" />
		</list>

 

bag映射

bag对象允许重复的元素,但是不记录添加对象的先后顺序。

在jdk中没有提供bag集合的类型,Hibernate中bag映射使用的是自己的bag类型

 bag的类型   org.hibernate.collection.PersistentBag

 

<bag name="emails" table="email">
			<key column="userid" foreign-key="id" />
			<element type="java.lang.String" column="email" />
		</bag>

 

 IdBag映射

bag集合映射的一种扩展,Hibernate提供还提供IdBag映射,可以在定义Bag映射时,为每个加入的对象指定id;

 

 

Map接口

map对象中保存的是key/value形式的一个对象,key与value都是object类型的变量,key与value是一一对应的关系,key值不能重复

 

HashMap

对象不会记录先后顺序

LinkedHaspMap

记录先后顺序

TreeMap

会把key值进行排序

 

Map映射

Map对象所包含的每一个对象(value)都有一个key与之对应,所以将map集合对象的数据存储到数据库表的时候,必须同时储存value对应的key值

 

<map name="phone" table="phone" order-by="phone_number">
    	   <key column="userid" foreign-key="id"></key>
    	   <map-key type="java.lang.String" column="usage"></map-key>
    	<element type="java.lang.String" column="phone_number"></element>
    	</map>

 

 

 

 集合映射的排序:

 

    利用<set>或<map>标签的sort属性对集合中的数据进行排序

<map name="phone" table="phone" sort="natural">
    	   <key column="userid" foreign-key="id"></key>
    	   <map-key type="java.lang.String" column="usage"></map-key>
    	<element type="java.lang.String" column="phone_number"></element>
    	</map>

 

    利用sql的order by子句排序

<map name="phone" table="phone" order-by="phone_number" desc>
    	   <key column="userid" foreign-key="id"></key>
    	   <map-key type="java.lang.String" column="usage"></map-key>
    	<element type="java.lang.String" column="phone_number"></element>
    	</map>

 

分享到:
评论

相关推荐

    Hibernate集合映射与关联关系

    本主题将深入探讨Hibernate集合映射与关联关系,包括"student与Score的Map集合关系"、"student与class的多对一"以及"一对多映射"的概念。 首先,让我们理解一下Hibernate中的集合映射。在关系型数据库中,一个实体...

    [原]Hibernate集合映射

    《Hibernate集合映射详解》 Hibernate作为Java领域中的一款强大持久化框架,其核心功能之一就是对象关系映射(ORM),使得开发者可以方便地在Java对象与数据库表之间进行交互。其中,集合映射是Hibernate中非常关键...

    Hibernate集合映射

    **标题:Hibernate集合映射** **正文:** Hibernate作为Java领域中最流行的ORM(对象关系映射)框架之一,它的核心功能之一就是实现Java对象与数据库表之间的映射。集合映射是Hibernate中一个非常关键的概念,它...

    hibernate集合映射inverse和cascade详解.txt

    在深入探讨Hibernate集合映射中的`inverse`与`cascade`属性之前,我们首先需要理解Hibernate框架的基本概念。Hibernate是一个开放源代码的对象关系映射(ORM)框架,它为Java应用程序提供了一种将对象模型与数据库...

    hibernate集合的映射

    Hibernate集合映射是ORM的重要组成部分,它使得Java对象和数据库表之间的关系更加直观和灵活。根据实际需求选择合适的集合类型,可以有效地处理复杂的数据关系。在实际应用中,应结合业务场景、数据特性以及性能需求...

    hibernate map 集合映射

    Hibernate集合映射的基本概念 集合映射是Hibernate中一个核心的概念,它允许我们将数据库表中的多对一(OneToMany)、一对多(ManyToOne)、多对多(ManyToMany)等关系映射到Java对象的集合属性上。通过这种方式...

    hibernate set 集合映射

    ### Hibernate集合映射基础 1. **集合类型**:Hibernate支持多种集合类型映射,如Set、List、ArrayList、LinkedList、Map等。Set是最常见的集合映射类型,它不允许重复元素,与数据库中的唯一约束相对应。 2. **...

    Hibernate常见集合映射(Set,List_Array,Map,Bag)

    Hibernate 集合映射详解 Hibernate 是一个流行的Java持久化框架,它提供了多种集合映射类型,以满足不同的业务需求。在 Hibernate 中,集合映射是指将 Java 集合类型与数据库表之间的映射关系。常见的集合映射类型...

    hibernate 集合映射

    本文将深入讲解Hibernate中的集合映射,包括set、list、map和bag的配置与使用。 1. **Set集合映射** Set集合不允许有重复元素,因此在Hibernate中,set映射通常用于表示唯一性关系,如一对多关系。在Hibernate映射...

    JAVA培训-HIBERNATE的集合映射.doc

    ### JAVA培训-HIBERNATE的集合映射 #### 概述 本文主要聚焦于Hibernate框架下的集合映射机制,特别是针对`Set`、`List`、`Array`、`Map`、`Bag`五种集合...希望本文能帮助读者更好地理解和应用Hibernate集合映射技术。

    hibernate bag 集合映射

    标题中的“hibernate bag 集合映射”指的是Hibernate框架中的一种关系映射机制。Hibernate是一个流行的Java ORM(对象关系映射)框架,它允许开发者将数据库表与Java类进行映射,使得在处理数据库操作时可以使用面向...

    hibernate list集合映射

    **标题:“Hibernate List集合映射”** 在Java的持久化框架Hibernate中,集合映射是将数据库中的表与Java对象的集合属性关联的过程。List集合映射是其中常见的一种方式,它允许我们将数据库中的一组相关记录映射到...

    hibernate关联映射实例

    这种映射可以通过集合类型如List、Set等来表示子项的集合。 2. **多对多关联映射**: 多对多关联是两个实体之间都可以有多个匹配项的情况,比如学生和课程的关系。在Hibernate中,我们可以使用`@ManyToMany`注解来...

    Hibernate映射集合属性List

    在Java持久化框架Hibernate中,映射集合属性是常见的需求,特别是对于那些具有一对多、多对多关系的实体对象。这里的"List"是Java集合框架中的一个接口,用于存储一组有序的元素,而在Hibernate中,它常用来映射...

    hibernate映射枚举类型

    Hibernate,作为Java中广泛使用的对象关系映射(ORM)框架,提供了一种优雅的方式来映射枚举类型到数据库。本文将深入探讨Hibernate如何映射枚举类型,并给出实际应用示例。 ### Hibernate枚举映射方式 #### 1. `@...

    Hibernate教程16_集合映射

    在Java的持久化框架Hibernate中,集合映射是至关重要的一个概念,它允许我们将数据库中的表与Java对象的集合属性进行关联。本教程主要讲解了如何在Hibernate中配置和使用集合映射,以便更好地理解和应用这个强大的...

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

    这里定义了一个名为`addresses`的集合,它映射到`person_address`表,并通过`person_id`列与`Address`类建立了一对多的关系。 此外,如果需要实现双向的一对多关系,还需要在`Address`类中添加对`Person`的引用: ...

    hibernate array 数组映射

    在Java的持久化框架Hibernate中,数组映射是一种常见的数据模型转换方式,它允许我们将数据库中的数据以数组的形式存储在Java对象中。本篇将详细探讨`hibernate array 数组映射`的相关知识点,包括其原理、配置、...

Global site tag (gtag.js) - Google Analytics