文档章节

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 更新或者删除报错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 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
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
Hibernate 3.6.0.Beta4 发布

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

红薯
2010/09/02
406
1

没有更多内容

加载失败,请刷新页面

加载更多

容器之Zookeeper的使用

我们使用zookeeper时,都是在Linux上安装zookeeper,之后启动时要加入配置文件。 使用docker之后,我们可以直接使用镜像运行容器,镜像可以从docker.hub上下载,地址是https://hub.docker.co...

克虏伯
18分钟前
0
0
esxi 更换ssl证书

概述 就是想换一个证书而已,你可以通过下面的途径去申请一个泛解析域名的证书之后再esxi上安装上 使用阿里云域名api申请Let’s Encrypt泛域名免费ssl证书 申请完成证书之后进行下一步 操作 ...

bboysoulcn
31分钟前
1
0
PLC编程入门:梯形图

梯形图(LAD)是PLC编程的最佳可视化语言,它看起来非常类似于继电器电路图,因此如果 你对继电器控制和电子电路有所了解的话,那么学起来会非常容易! 在这个教程中,我们将学习关于使用梯形...

汇智网教程
33分钟前
1
0
Kubernetes 1.13.0的快速升级

Kubernetes 1.13.0已经正式发布,快速升级(含国内镜像快速下载链接)包括升级kubeadm/kubectl/kubelet版本、拉取镜像、升级Kubernetes集群三个主要步骤。注意Kubernetes 1.13.0版本暂时不支...

openthings
47分钟前
2
0
go的卸载和环境变量配个人.bashrc

若是用安装包直接解压 http://download.csdn.net/detail/u010026901/7592581 cd /usr/local tar -zxvf go1.1.2.linux-386.tar.gz(先把安装包移到这个目录) 3.安装 $ cd go/src,$ ./all.b......

dragon_tech
52分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部