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

  

// 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. C#学习笔记_06_方法&函数

    06_方法&函数 方法的定义 方法就是一个功能的集合,可以把程序中某段具有特殊功能的代码提取出来: 声明方法 [ 访问权限修饰符 ] [ 其他的修饰符 ] 返回值类型 方法名 ( [形参列表] ...

  2. Nexus私服的搭建

    1.nexus 介绍     是开源的,用该框架架设maven私有服务器   2.nexus私服环境搭建     把nexus.war包放到tomcat的webapps下面     浏览且登录     ...

  3. 20150805-20150807 tradeDate-----python

    1.创建数据库(strategy).表(trade_date 交易日) create database strategy default character set utf8 collate utf8 ...

  4. 洛谷—— P2014 选课

    https://www.luogu.org/problem/show?pid=2014 题目描述 在大学里每个学生,为了达到一定的学分,必须从很多课程里选择一些课程来学习,在课程里有些课程必须在某些课 ...

  5. 【翻译自mos文章】ABMR:在asm 环境中測试Automatic Block Recover 特性的方法

    ABMR:在asm 环境中測试Automatic Block Recover 特性的方法 參考原文: ABMR: How to test Automatic Block Recover Feature ...

  6. Fitnesse Page 简单使用

    more information- http://www.fitnesse.org/FitNesse.UserGuide 1.1   Edit 点击该按钮,则可以开始编辑(如果该按钮没有出现,则这个页 ...

  7. 基于SpringMVC+SpringJDBC的用户管理系统(增删查改)

    鉴于MyBatis暂时不会用,所以用刚学的SpringJDBC代替,也很简洁.以下贴出几个重要的代码. 1.UserDaoImpl数据库操作实现类 package com.wxy.dao.impl; ...

  8. Android 四大组件学习之ContentProvider二

    上节学习了什么是ContentProvider.以及ContentProvider的作用.以及什么是URL.本节就对上节学习的知识做一个实践,也就是定义自己的ContentProvider 好.实践是 ...

  9. 一个简单的演示用的Linux字符设备驱动程序

    实现如下的功能:--字符设备驱动程序的结构及驱动程序需要实现的系统调用--可以使用cat命令或者自编的readtest命令读出"设备"里的内容--以8139网卡为例,演示了I/O端 ...

  10. Citrix架构

    本图为citrix在Azure上的基本架构 包含了netscaler, VDA, DDC, AD四台服务器以及Azure SQL服务