文档章节

hibernate---->Collection映射

小强斋太
 小强斋太
发布于 2016/11/09 20:07
字数 460
阅读 1
收藏 0
点赞 0
评论 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 ⋅ 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 ⋅ 0

hibernate集合映射(转载)

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

李永china ⋅ 2016/06/12 ⋅ 0

Hibernate 3.6.0.Beta4 发布

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

红薯 ⋅ 2010/09/02 ⋅ 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 ⋅ 0

Hibernate ORM 5.1.8 发布,数据持久层框架

Hibernate ORM 5.1.8.Final 已发布,该版本可能是 5.1 系列最后的一个版本,修复了一些 bug。不过为了将来能收到 bug 修复的更新,建议迁移至 5.2 系列。 详细更新内容: Bug 修复 [HHH-932...

局长 ⋅ 2017/06/25 ⋅ 8

求助:如果直接将hibernate的ORM映射对象序列化了传递到gwt里去,并且使用了集合映射,就会

用的是gxt技术,下面的A类是个实体类,和 B 类是一对多的关系,A类中的Bs set 集合存的是属于A下面的所有B类实体,当用GXT 的grid 加载A类信息的时候就会报如下错误。 Type 'org.hibernate....

xyxy ⋅ 2010/12/15 ⋅ 3

Hibernate技术参考文档3.2

http://www.thinksaas.cn/manual/hibernate/#configuration-optional-cacheprovider 3.2 目录 前言 1. 翻译说明 2. 版权声明 1. Hibernate入门 1.1. 前言 1.2. 第一部分 - 第一个Hibernate......

不知道起什么名字 ⋅ 2016/09/07 ⋅ 0

hibernate 基础

一、Hibernate工作原理: 读取并解析配置文件 读取并解析映射信息,创建SessionFactory 打开Sesssion 创建事务Transation 持久化操作 提交事务 关闭Session 关闭SesstionFactory 二、Hiberna...

scofi06 ⋅ 2010/09/01 ⋅ 0

hibernate面试题

一、Hibernate工作原理: 读取并解析配置文件 读取并解析映射信息,创建SessionFactory 打开Sesssion 创建事务Transation 持久化操作 提交事务 关闭Session 关闭SesstionFactory 二、Hiberna...

序写人生 ⋅ 2010/06/13 ⋅ 1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

20.zip压缩 tar打包 打包并压缩

6月25日任务 6.5 zip压缩工具 6.6 tar打包 6.7 打包并压缩 6.5 zip压缩工具: zip支持压缩目录 zip压缩完之后原来的文件不删除 不同的文件内容其实压缩的效果不一样 文件内有很多重复的用xz压...

王鑫linux ⋅ 12分钟前 ⋅ 0

double类型数据保留四位小数的另一种思路

来源:透析公式处理,有时候数据有很长的小数位,有的时候由在四位以内,如果用一般的处理方法,那么不足四位的小树会补充0到第四位,这样子有点画蛇添足的感觉,不太好看。所以要根据小数的...

young_chen ⋅ 18分钟前 ⋅ 0

Python 优化 回溯下降算法

使用sympy构造表达式,实现回溯下降算法 画出函数图像,先使用暴力搜索,找到最小值约为2.5左右 然后选定初始点,开始进行回溯搜索,下降方向为负梯度方向 下降的误差与步数大致呈现下面的状...

阿豪boy ⋅ 23分钟前 ⋅ 0

Django配置163邮箱出现 authentication failed(535)错误解决方法

最近用Django写某网站,当配置163邮箱设置完成后,出现535错误即:smtplib.SMTPAuthenticationError: (535, b'Error: authentication failed') Django初始配置邮箱设置 EMAIL_HOST = "smtp.1...

陈墨轩_CJX ⋅ 24分钟前 ⋅ 0

用接口模拟可伸缩枚举(34)

1、枚举的可伸缩性最后证明都不是什么好点子 扩展类型的元素是基本类型实例,基本类型的实例却不是扩展类型的元素,很混乱 目前还没有很好的方法来枚举基本类型的所有元素,及其扩展 可伸缩性...

职业搬砖20年 ⋅ 28分钟前 ⋅ 0

Ubuntu18.04 IDEA快捷键无法使用

IDEA默认的回退到上一视图的快捷键是Ctrl + Alt + Left,在ubuntu中这个快捷键被占用了,在16.04中可以在界面中取消这个快捷键,但是18.04就看不到了,可以使用以下命令解决 gsettings set ...

Iceberg_XTY ⋅ 32分钟前 ⋅ 0

如何解决s权限位引发postfix及crontab异常

一、问题现象 业务反馈某台应用服务器,普通用户使用mutt程序发送邮件时,提示“postdrop warning: mail_queue_enter: create file maildrop/713410.6065: Permission denied”,而且普通用法...

问题终结者 ⋅ 44分钟前 ⋅ 0

Unable to load database on disk

由于磁盘空间满了以后,导致zookeeper异常退出,清理磁盘空间后,zk启动报错,信息如下: 2018-06-25 17:18:46,904 INFO org.apache.zookeeper.server.quorum.QuorumPeerConfig: Reading co...

刀锋 ⋅ 今天 ⋅ 0

css3 box-sizing:border-box 实现div一行多列

<!DOCTYPE html><html><head><style> div.container{ background:green; padding:10px 10px;}div.box{box-sizing:border-box;-moz-box-sizing:border-box; /* Fir......

qimh ⋅ 今天 ⋅ 0

Homebrew简介和基本使用

一、Homebrew是什么 Homebrew是一款Mac OS平台下的软件包管理工具,拥有安装、卸载、更新、查看、搜索等很多实用的功能。简单的一条指令,就可以实现包管理,而不用你关心各种依赖和文件路径...

说回答 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部