文档章节

hibernate---->Collection映射

小强斋太
 小强斋太
发布于 2016/11/09 20:07
字数 460
阅读 2
收藏 0

                        集合, 数组类型的映射: set,list, array, map

除了下面的方法外,还可以写自定义类型,即让List, Set集合类型存储到数据库时里面的元素用,号隔开.读出来的时候又分解成集合对象.这个有点像struts的类型转换器.
注意:
  * 这里使用的集合类型时,集合对象里面存放的类型是基本数据类型,而不是复杂类或自定义类.
    如果是自定义类,那可以用 多对一 的映射(放在set中).
  * 集合的映射比较少使用

CollectionMapping.java

package com.ncepu.hibernate;

import java.util.List;
import java.util.Map;
import java.util.Set;

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

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public Set getSetValue() {
		return setValue;
	}

	public void setSetValue(Set setValue) {
		this.setValue = setValue;
	}

	public List getListValue() {
		return listValue;
	}

	public void setListValue(List listValue) {
		this.listValue = listValue;
	}

	public String[] getArrayValue() {
		return arrayValue;
	}

	public void setArrayValue(String[] arrayValue) {
		this.arrayValue = arrayValue;
	}

	public Map getMapValue() {
		return mapValue;
	}

	public void setMapValue(Map mapValue) {
		this.mapValue = mapValue;
	}
}

CollectionMapping.hbm.xml

 <class name="com.ncepu.hibernate.CollectionMapping" table="t_CollectionMapping">
   <id name="id">
    <generator class="native"/>
   </id>
   <property name="name"/>
   
   <!--生成一个表t_set_value,用于存放set类型的数据-->
   <set name="setValue" table="t_set_value">
    <!--生成一个主键set_id,作为外键参照t_CollectionMapping表主键-->
    <key column="set_id"/>
    <element type="string" column="set_value"/>
   </set>
   
   <list name="listValue" table="t_list_value">
    <key column="list_id"/>
    <!--因为List是有序的,所以还得存放一个下标list_index-->
    <list-index column="list_index"/>
    <element type="string" column="list_value"/>
   </list>
   
   <array name="arrayValue" table="t_array_value">
    <key column="array_id"/>
    <!--数组与List类型一样,也是有序的-->
    <list-index column="array_index"/>
    <element type="string" column="array_value"/>
   </array>
   
   <map name="mapValue" table="t_map_value">
    <key column="map_id"/>
    <!--Map类型得存放map-key和map-value两个值-->
    <map-key type="string" column="map_key"/>
    <element type="string" column="map_value"/>
   </map>
  </class>

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

 

 

 

本文转载自:http://www.cnblogs.com/xqzt/archive/2012/09/05/5637189.html

共有 人打赏支持
小强斋太
粉丝 0
博文 181
码字总数 0
作品 0
广州
Hibernate 5.0.1 发布,添加读写缓存并发策略

Hibernate 5.0.1 正式发布,更新内容如下: ** Bug 修复 * [HHH-9962] - Second level query cache returns stale data if query and update statements are executed concurrently * [HHH-9......

淡漠悠然
2015/09/04
1K
0
关于hibernate 更新或者删除报错different object with the same identifier

Hibernate 疑难异常及处理 1、a different object with the same identifier value was already associated with the session。   错误原因:在hibernate中同一个session里面有了两个相同标......

章大大
2016/12/23
10
0
hibernate集合映射(转载)

Hibernate集合映射 假设有一个User类,User对象的属性包括编号,姓名,爱好(假设一个人有很多爱好,这时就要用到数组或者集合),用户日志(很多篇,也会用到数组或集合)。此时的实体Bean应该是...

李永china
2016/06/12
8
0
Hibernate 3.6.0.Beta4 发布

Hibernate是一种Java语言下的对象关系映射解决方案。 它是使用GNU宽通用公共许可证发行的自由、开源的软件。它为面向对象的领域模型到传统的关系型数据库的映射,提供了一个使用方便的框架。...

红薯
2010/09/02
397
1
SSH 错误记录

Error querying database. Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for com.globalroam.monitor.dao.Impl.DailyReportDaoImpl.ge......

scymore
2016/03/14
40
0

没有更多内容

加载失败,请刷新页面

加载更多

Spark Load Data and Export Data

Load_Data_Command 一、导入数据-加载csv文件数据作为spark 临时表DataSource(不需要提前创建表,方便数据分析) 该命令将csv文件导入到临时表中,命令格式为 load data '文件路径' table [...

Avner
15分钟前
1
0
CDH5.13离线安装Spark2.3详细步骤

简介: 在我的CDH5.13集群中,默认安装的spark是1.6版本,这里需要将其升级为spark2.x版本。经查阅官方文档,发现spark1.6和2.x是可以并行安装的,也就是说可以不用删除默认的1.6版本,可以直...

hblt-j
18分钟前
2
0
Add XSS protection headers on Nginx

Add XSS protection headers on Nginx Add the following line in the http or server part of your Nginx configuration : ... # XSS Protection add_header X-Frame-Opt......

idoz
19分钟前
1
0
cmake windows 配置xp toolset

MPRO
25分钟前
1
0
day125-20181023-英语流利阅读-待学习

外卖员不要哭,打零工不容易 雪梨 2018-10-23 1.今日导读 上期我们讲到,有人认为:“零工经济”虽然没有占领全世界,但它剥夺了劳动者的合法权利,加剧了工作的不稳定性,那么“零工经济”是...

飞鱼说编程
37分钟前
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部