`

hibernate集合类映射

阅读更多

关系图

t_CollectionMapping

 

id

name

1

xxx

 

t_set_values

 

set_id

set_value

1

a

1

b

 

t_list_value

 

list_id

list_value

list_index

1

c

0

1

d

1

 

t_array_value

 

array_id

array_value

array_index

1

e

0

1

f

1

 

t_map_value

 

map_id

map_key

map_value

1

k1

v1

1

k2

v2

 

其中set、list、map、array的ID都指向CollectionMapping的id

 

1、实体文件

public class CollectionMapping {
	
	private int id;
	
	private String name;
	
	private Set setValue;
	
	private List listValue;
	
	private String[] arrayValue;
	
	private Map mapValue;
...

 

2、映射文件

<hibernate-mapping>
	<class name="com.bjsxt.hibernate.CollectionMapping" table="t_CollectionMapping">
		<id name="id">
			<generator class="native"/>
		</id>
		<property name="name"/>
		<set name="setValue" table="t_set_value">
			<key column="set_id"/>
			<element type="string" column="set_value"/>
		</set>
		<list name="listValue" table="t_list_value">
			<key column="list_id"/>
			<list-index column="list_index"/>
			<element type="string" column="list_value"/>
		</list>
		<array name="arrayValue" table="t_array_value">
			<key column="array_id"/>
			<list-index column="array_index"/>
			<element type="string" column="array_value"/>
		</array>
		<map name="mapValue" table="t_map_value">
			<key column="map_id"/>
			<map-key type="string" column="map_key"/>
			<element type="string" column="map_value"/>
		</map>
	</class>
</hibernate-mapping>

 

3、TestCase

public class CollectionMappintTest extends TestCase {

	public void testSave1() {
		Session session = null;
		CollectionMapping c = new CollectionMapping();
		
		c.setName("xxx");
		
		Set setValue = new HashSet();
		setValue.add("a");
		setValue.add("b");
		c.setSetValue(setValue);
		
		List listValue = new ArrayList();
		listValue.add("c");
		listValue.add("d");
		c.setListValue(listValue);
		
		String[] arrayValue = new String[]{"e", "f"};
		c.setArrayValue(arrayValue);
		
		Map mapValue = new HashMap();
		mapValue.put("k1", "v1");
		mapValue.put("k2", "v2");
		c.setMapValue(mapValue);		
		try {
			session = HibernateUtils.getSession();
			session.beginTransaction();
			session.save(c);
			session.getTransaction().commit();
		}catch(Exception e) {
			e.printStackTrace();
			session.getTransaction().rollback();
		}finally {
			HibernateUtils.closeSession(session);
		}
	}	
	
	public void testLoad1() {
		Session session = null;
		try {
			session = HibernateUtils.getSession();
			session.beginTransaction();
			CollectionMapping c = (CollectionMapping)session.load(CollectionMapping.class, 1);
			System.out.println("name=" + c.getName());
			System.out.println("setvalue=" + c.getSetValue());
			System.out.println("mapvalue=" + c.getMapValue());
			System.out.println("listvalue=" + c.getListValue());
			session.getTransaction().commit();
		}catch(Exception e) {
			e.printStackTrace();
			session.getTransaction().rollback();
		}finally {
			HibernateUtils.closeSession(session);
		}
	}			
	
}

 

分享到:
评论

相关推荐

    hibernate集合的映射

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

    Hibernate集合映射与关联关系

    在Hibernate中,我们可以使用集合类(如List、Set、Map等)来映射这些关系。例如,一个学生可以有多次成绩记录,这就构成了一个学生到成绩的映射关系,通常我们使用Map来表示这种关系,因为Map能确保每个学生都有...

    hibernate set 集合映射

    在Java的持久化框架Hibernate中,集合映射是将数据库中的表关系映射到对象模型中的集合类,如List、Set、Map等。这允许我们在Java代码中操作对象集合,而Hibernate负责处理底层的SQL查询和数据存储。本文将深入探讨`...

    [原]Hibernate集合映射

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

    hibernate bag 集合映射

    在描述中提到的“博文链接:https://lijunabc.iteye.com/blog/443353”,虽然具体内容没有给出,但通常这类博客文章会详细解释如何配置和使用Hibernate的bag集合映射,包括XML或注解方式的映射定义,以及在Java代码...

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

    Hibernate 集合映射详解 Hibernate 是一个流行的Java持久化框架,它提供了多种集合映射类型,以满足不同的业务需求。...通过正确地设计数据库表结构和实体类,可以充分发挥 Hibernate 集合映射的功能。

    JAVA数据类型与Hibernate的类型映射

    通过在实体类上使用@Entity注解,并使用@Id注解指定主键字段,可以将一个Java类映射到数据库的一张表。字段则通过@Column注解来指定列名和属性,如长度、是否可为空等。 在处理NULL值时,Hibernate提供了可选的...

    Hibernate集合映射

    综上所述,Hibernate集合映射是将Java集合类与数据库表关联的关键机制,涵盖了从一对一、一对多到多对多的各种关系映射。理解并熟练掌握这些映射方式,能够帮助开发者更好地设计和实现数据持久化层,提高代码的可...

    hibernate list集合映射

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

    hibernate array 数组映射

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

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

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

    Hibernate映射集合属性List

    如果不使用注解,我们可以在`hibernate.cfg.xml`中配置实体类和数据库表的关系,然后在实体类的`.hbm.xml`文件中定义集合属性的映射。例如,`User.hbm.xml`可能包含以下内容: ```xml &lt;!-- 其他属性映射 --&gt; ...

    hibernate的多种映射关系

    在 Hibernate 中,映射关系是将数据库表与 Java 类之间的关联方式,使得对象模型可以与关系模型无缝对接。本篇文章将详细探讨 Hibernate 中的多种映射关系。 1. **一对一映射 (One-to-One)** 一对一映射表示两个...

    hibernate中容器映射技术

    在Java持久化框架Hibernate中,容器映射技术是将Java集合类(如Set、Map、List等)与数据库中的关联关系进行映射的一种方法。这种技术使得对象之间的复杂关系能够被有效地存储和检索,增强了数据操作的灵活性。下面...

    hibernate多对多关联映射

    在Java的持久化框架Hibernate中,多对多关联映射是一种常见的关系数据库模型映射方式,用于处理两个实体之间存在多个实例互相关联的情况。本文将深入探讨Hibernate如何实现多对多关联映射,并通过实际例子解析相关...

    Hibernate_容器映射技术笔记

    在示例中,Person类有一个名为`emails`的集合,它映射到emails表,并通过`&lt;key&gt;`标签指定外键关联。 2. **List**: List是允许重复元素的集合,适合存储可能重复的数据。在数据库中,可以通过增加一个索引字段来区别...

    hibernate关联映射实例

    Hibernate支持类的继承映射,这使得对象模型可以更好地反映业务逻辑。主要有三种继承策略:单表继承(Single Table Inheritance, STI)、联合继承(Concrete Table Inheritance, CTI)和表-per-hierarchy(Table ...

Global site tag (gtag.js) - Google Analytics