简单集合映射(可以直接获取)

  

// javabean设计

public class User {

private int userId;

private String userName;

// 一个用户,对应的多个地址

private Set<String> address;

private List<String> addressList = new ArrayList<String>();

//private String[] addressArray; // 映射方式和list一样     <array name=""></array>

private Map<String,String> addressMap = new HashMap<String, String>();

}

<hibernate-mapping package="cn.itcast.a_collection">

<class name="User" table="t_user">

<id name="userId" column="id">

<generator class="native"></generator>

</id>

<property name="userName"></property>

<!--

set集合属性的映射

name 指定要映射的set集合的属性

table 集合属性要映射到的表

key  指定集合表(t_address)的外键字段

element 指定集合表的其他字段

type 元素类型,一定要指定

-->

<set name="address" table="t_address">

<key column="uid"></key>

<element column="address" type="string"></element>

</set>

<!--

list集合映射

list-index  指定的是排序列的名称 (因为要保证list集合的有序)

-->

<list name="addressList" table="t_addressList">

<key column="uid"></key>

<list-index column="idx"></list-index>

<element column="address" type="string"></element>

</list>

<!--

map集合的映射

key  指定外键字段

map-key 指定map的key

element  指定map的value

-->

<map name="addressMap" table="t_addressMap">

<key column="uid"></key>

<map-key column="shortName" type="string" ></map-key>

<element column="address" type="string" ></element>

</map>

</class>

</hibernate-mapping>

// 保存set

@Test

public void testSaveSet() throws Exception {

Session session = sf.openSession();

session.beginTransaction();

//-- 保存

Set<String> addressSet = new HashSet<String>();

addressSet.add("广州");

addressSet.add("深圳");

// 用户对象

User user = new User();

user.setUserName("Jack");

user.setAddress(addressSet);

// 保存

session.save(user);

session.getTransaction().commit();

session.close();

}

// 保存list/map

@Test

public void testSaveList() throws Exception {

Session session = sf.openSession();

session.beginTransaction();

User user = new User();

user.setUserName("Tom");

// // 用户对象  --  list

// user.getAddressList().add("广州");

// user.getAddressList().add("深圳");

// // 保存

// session.save(user);

// 用户对象  --  Map

user.getAddressMap().put("A0001", "广州");

user.getAddressMap().put("A0002", "深圳");

// 保存

session.save(user);

session.getTransaction().commit();

session.close();

}

hibernate简单集合映射和获取的更多相关文章

  1. Hibernate的集合映射(Set、List、Array、Map、Bag)

    POJOs如下: Customer类------>customer表   Order类对应---------->orders表  customer(1)<-------------- ...

  2. Hibernate的集合映射与sort、order-by属性

    [Hibernate]Hibernate的集合映射与sort.order-by属性 常用集合Set.List.Map,相信大家都很熟悉,面试中也会经常问.Set和List都继承了Collection接 ...

  3. Hibernate之集合映射的使用(Set集合映射,list集合映射,Map集合映射)

    a:数据库的相关知识: (1):一个表能否有多个主键:不能: (2):为什么要设置主键:数据库存储的数据都是有效的,必须保持唯一性: (3)为什么id作为主键:因为表中通常找不到合适的列作为唯一列,即 ...

  4. Hibernate笔记③--集合映射、组合映射、联合主键、查询案例

    lazy 懒加载 默认为proxy   继承映射 discriminant column="type" type="string"   集合映射 生成表的语句: ...

  5. hibernate的集合映射(详细笔记)

  6. Hibernate第四篇【集合映射、一对多和多对一】

    前言 前面的我们使用的是一个表的操作,但我们实际的开发中不可能只使用一个表的-因此,本博文主要讲解关联映射 集合映射 需求分析:当用户购买商品,用户可能有多个地址. 数据库表 我们一般如下图一样设计数 ...

  7. 【Hibernate步步为营】--最后的集合映射

    上篇文章具体讨论了组合对象映射的原理.它事实上指的是怎样将对象模型中的组合关系映射到关系模型中,它是通过使用Hibernate提供的<component>标签来实现的,并须要在该标签中加入 ...

  8. (转)Hibernate框架基础——映射集合属性

    http://blog.csdn.net/yerenyuan_pku/article/details/52745486 集合映射 集合属性大致有两种: 单纯的集合属性,如像List.Set或数组等集合 ...

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

    hibernate集合映射inverse和cascade详解   1.到底在哪用cascade="..."? cascade属性并不是多对多关系一定要用的,有了它只是让我们在插入或 ...

随机推荐

  1. 5、SpringBoot+MyBaits+Maven+Idea+pagehelper分页插件

    1.为了我们平时方便开发,我们可以在同一个idea窗口创建多个项目模块,创建方式如下 2.项目中pom.xm文件的内容如下 <?xml version="1.0" encod ...

  2. WinRTXamlToolkit在Win8.1实现统计图

    [注1]WinRTXamlToolkit是免费控件,不过很久不更新了,而且网上的资源很少.后来我发现syncfusion控件有免费的community版本,并且有详细文档,所以就转过去使用syncfu ...

  3. 暑假集训D12总结

    刷题 今天终于不考试= = 上午刷了一大圈线段树板子题,于是算是学会了Zkw线段树= = 下午昨天的dalao又来讲几何,然而仍然没有笔记= = 于是刷了一大圈计算几何的水题= =,并没哟啥可以写出题 ...

  4. SVN提示被锁定的解决方法(转)

    1.(常用)出现这个问题后使用“清理”即"Clean up"功能,如果还不行,就直接到上一级目录,再执行“清理”,然后再“更新”. 2.(没试过)有时候如果看到某个包里面的文件夹没 ...

  5. 事务 ACID

    A C I D A:ATOMICITY REDO C:CONSTENCY UNDO I :ISOLATION LOCK D :Durable redo & undo

  6. SQL优化(SQL TUNING)之10分钟完毕亿级数据量性能优化(SQL调优)

    前几天.一个用户研发QQ找我,例如以下: 自由的海豚. 16:12:01 岛主,我的一条SQL查不出来结果,能帮我看看不? 兰花岛主 16:12:10 多久不出结果? 自由的海豚 16:12:17 多 ...

  7. Codeforces Round #FF (Div. 2) D. DZY Loves Modification 贪心+优先队列

    链接:http://codeforces.com/problemset/problem/447/D 题意:一个n*m的矩阵.能够进行k次操作,每次操作室对某一行或某一列的的数都减p,获得的得分是这一行 ...

  8. CentOS 7 安装Nginx做反向代理

    题记 须要使用nginx的反向代理功能,測试环境为centos+NGINX 1.8.0. 跳过一些繁琐的问题,直接记录核心 步骤 (1)centos 安装在VM中.因此须要注意网络连接问题 (2)安装 ...

  9. [cocos2dx笔记012]一定简易的UI配置类

    使用cocostudio能够装载编辑好的UI,可是过于复杂.特别是在加截UI后,发现触屏事件有些问题. 假设直接使用程序写死载入UI又过于麻烦.花点时间,添加了一个基于ini的UI配置类,眼下仅仅实现 ...

  10. DNS 隐蔽通道工具资料汇总

    http://www.cnblogs.com/bonelee/p/7651746.html DNS隧道和工具 内含dns2tcp.iodine.dnscat2工具的简单使用说明 iodine工具的使用 ...