【Hibernate】简单集合映射
来源:互联网 发布:pace.js 在线演示 编辑:程序博客网 时间:2024/06/01 09:24
// 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>();}
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping package="cn.lfsenior.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@Testpublic 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@Testpublic 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);// 用户对象 -- Mapuser.getAddressMap().put("A0001", "广州");user.getAddressMap().put("A0002", "深圳");// 保存session.save(user);session.getTransaction().commit();session.close();}// 获取@Testpublic void testGet() throws Exception {Session session = sf.openSession();session.beginTransaction();// 获取User user = (User) session.get(User.class, 3); // 及时加载System.out.println(user.getUserId());System.out.println(user.getUserName());// 当查询用户,同时可以获取用户关联的list集合的数据 (因为有正确映射)// 当使用到集合数据的使用,才向数据库发送执行的sql语句 (懒加载)System.out.println(user.getAddressList());session.getTransaction().commit();session.close();}
阅读全文
1 0
- 【Hibernate】简单集合映射
- Hibernate 简单数据集合映射
- Hibernate Set集合映射简单例子
- Hibernate List集合映射简单例子
- Hibernate Map集合映射简单例子
- Hibernate高级映射 --- 集合映射
- Hibernate高级映射 --- 集合映射
- Hibernate高级映射 --- 集合映射
- Hibernate高级映射 --- 集合映射
- Hibernate高级映射 --- 集合映射
- Hibernate高级映射 --- 集合映射
- Hibernate集合映射、关联映射
- hibernate中的集合映射
- Hibernate集合映射---Map
- Hibernate Map集合映射
- hibernate中的集合映射
- hibernate映射集合属性
- hibernate 集合映射
- 【POJ 2528】Mayor's posters(线段树,离散化)
- PtQt4标准对话框——QFileDialog
- mysql:InnoDB的主键采用聚簇索引,二级索引不采用聚簇索引
- 如何将一个列表嵌套的结构中的每个最底层元素取出,并形成一个新的列表
- 第二章:2.6 LTI系统特性与单位冲击信号的关系
- 【Hibernate】简单集合映射
- QT C++对象不用手动delete的条件
- 编写DAOImpl的JUnit测试
- 数据结构-二叉堆
- 2017最新PHP经典面试题目汇总(上篇)
- java毕向东学习笔记——day09
- HDU 6124 Euler theorem
- 非线性-Logistic(逻辑斯特)回归
- 初学者入门web前端 C#基础知识:数组与集合