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

  

// 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. Bootstrap 表单控件状态(禁用状态)

    Bootstrap框架的表单控件的禁用状态和普通的表单禁用状态实现方法是一样的,在相应的表单控件上添加属性“disabled”.和其他表单的禁用状态不同的是,Bootstrap框架做了一些样式风格的处 ...

  2. python实现RGB转化为灰度图像

    问题: 我正尝试使用matplotlib读取RGB图像并将其转换为灰度.在matlab中,我使用这个: 1 img = rgb2gray(imread('image.png')); 在matplotl ...

  3. 0726xtrbackup实例详解

    转自http://www.cnblogs.com/olinux/p/5207887.html MySQL中的xtrabackup的原理解析 xtrabackup的官方下载地址为 http://www. ...

  4. [Cypress] Wait for XHR Responses in a Cypress Test

    When testing interactions that require asynchronous calls, we’ll need to wait on responses to make s ...

  5. python中经常使用的字典内建函数

    1.len(mapping)        返回映射的长度(键-值对的个数) 2.hash(obj)              返回obj的哈希值 >>> myDict = {'na ...

  6. selenium找到页面元素click没反应

    问题描述:通过调试可以看到控制台已经找到了起诉入口页面元素,可是点击“我是原告”没有反应了,也没有报错 解决办法:登录时是跳进了两层的iframe中,需要跳出iframe才能找到我是原告.

  7. 实战c++中的string系列--CDuiString和string的转换(duilib中的cduistring)

    使用所duilib的人定会知道cduistring类型,先看看这个类是怎么定义的: class UILIB_API CDuiString { public: enum { MAX_LOCAL_STRI ...

  8. OLR文件丢失的恢复

    11.2.0.1的RAC中,rac1和rac2 一.OLR有备份的情况 1.手动将rac1中的olr重命名,模拟丢失 mv rac1.olr rac1.olr.test 2.重新启动crs ./crs ...

  9. 学习vi和vim编辑器(1):vi文本编辑器

    UNIX系统中有非常多编辑器.能够分为两种类型:行编辑器和全屏编辑器.行编辑器每次仅仅能在屏幕中显示文件的一行,如ed和ex编辑器.全屏编辑器能够在屏幕上显示文件的一部分. vi(读为vee-eye) ...

  10. Java深入 - Filter过滤器

    Java的1.3開始,对servlet2.3规范中增加了过滤器的支持.过滤器可以让我们对目标资源的请求和响应进行截取. 一些filter的特性: 1. Filter是Servlet规范的规定,须要Se ...