集合映射
2016-07-19 23:01
274 查看
集合映射
set集合映射list集合映射
map映射
User.java
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>(); }
User.hbm.xml配置(hibernate.cfg.xml主配置就不写了)
<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="id"></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>
App.java测试类
public class App { private static SessionFactory sf; static { sf = new Configuration() .configure() .buildSessionFactory(); } // 保存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(); }
数据库结果:
set集合
list集合
3.map
几种映射的区别:
set映射是无序的,映射一个有效字段。
list映射是有序的,映射一个有效字段。
map映射无序,映射两个字段有效字段。
数组映射和map映射方式相同。
相关文章推荐
- 012——hibernate之集合映射
- hibernate 映射文件的学习
- Hibernate inverse
- hibernate使用list映射,查询出来的list集合包含多个null记录
- 映射集合属性
- 【Hibernate框架开发之七】Annotation各种关系CRUD增删改查&集合映射&继承映射
- 集合映射详解
- java集合框架之Map映射
- 第33天(就业班) 关联映射、集合映射、一对多映射、inverse属性、cascade级联操作、多对多映射配置
- Hibernate之集合映射
- 128. Longest Consecutive Sequence
- 关联映射
- 多对多映射
- 记录输入三数排序,字符串操作
- Android studio启动到指定Activity
- 2016第30周二
- TOYS-POJ2318
- 注解 @RequestMapping
- 设计模式之策略模式
- Hadoop 2.x源码包编译