hibernate简单集合映射和获取

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

  

// 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 指定mapkey

   element  指定mapvalue

   -->

  <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();

}

posted @ 2017-12-03 23:25  _HelloWord  阅读(311)  评论(0编辑  收藏  举报