`
penghao122
  • 浏览: 357755 次
  • 性别: Icon_minigender_1
  • 来自: 广东珠海
社区版块
存档分类
最新评论

hibernate 全面学习【hibernate 集合映射】

阅读更多
集合的映射
set
list
array
map
package com.bjsxt.hibernate;

import java.util.List;
import java.util.Map;
import java.util.Set;

public class CollectionMapping {
	
	private int id;
	
	private String name;
	
	private Set setValues;
	
	private List listValues;
	
	private String[] arrayValues;
	
	private Map mapValues;

	public String[] getArrayValues() {
		return arrayValues;
	}

	public void setArrayValues(String[] arrayValues) {
		this.arrayValues = arrayValues;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public List getListValues() {
		return listValues;
	}

	public void setListValues(List listValues) {
		this.listValues = listValues;
	}

	public Map getMapValues() {
		return mapValues;
	}

	public void setMapValues(Map mapValues) {
		this.mapValues = mapValues;
	}

	public Set getSetValues() {
		return setValues;
	}

	public void setSetValues(Set setValues) {
		this.setValues = setValues;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	
}


hibernate 映射文件

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC 
	"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
	<class name="com.bjsxt.hibernate.CollectionMapping" table="t_collection_mapping">
		<id name="id">
			<generator class="native"/>
		</id>
		<property name="name"/>
		<set name="setValues" table="t_set_values">
			<key column="set_id"/>
			<element type="string" column="set_value"/>
		</set>
		<list name="listValues" table="t_list_values">
			<key column="list_id"/>
			<list-index column="list_index"/>
			<element type="string" column="list_value"/>
		</list>
		<array name="arrayValues" table="t_array_values">
			<key column="array_id"/>
			<list-index column="array_index"/>
			<element type="string" column="array_value"/>
		</array>		
		<map name="mapValues" table="t_map_values">
			<key column="map_id"/>
			<map-key type="string" column="map_key"/>
			<element type="string" column="map_value"/>
		</map>
	</class>
</hibernate-mapping>



测试类


package com.bjsxt.hibernate;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;

import org.hibernate.Session;

import junit.framework.TestCase;

public class CollectionMappingTest extends TestCase {
	
	public void testSave() {
		CollectionMapping c = new CollectionMapping();
		c.setName("xxx");
		
		Set setValues = new HashSet();
		setValues.add("a");
		setValues.add("b");
		c.setSetValues(setValues);
		
		 List listValues = new ArrayList();
		 listValues.add("c");
		 listValues.add("d");
		 c.setListValues(listValues);
		 
		 String[] arrayValues = new String[]{"e", "f"};
		 c.setArrayValues(arrayValues);
		 
		 Map mapValues = new HashMap();
		 mapValues.put("key_1", "value_1");
		 mapValues.put("key_2", "value_2");
		 c.setMapValues(mapValues);
		 
			Session session = null;
			try {
				session = HibernateUtils.getSession();
				session.beginTransaction();
				session.save(c);
				session.getTransaction().commit();
			}catch(Exception e) {
				e.printStackTrace();
				session.getTransaction().rollback();
			}finally {
				HibernateUtils.closeSession(session);
			}
		
	}
	
	public void testLoad1() {
		Session session = null;
		try {
			session = HibernateUtils.getSession();
			CollectionMapping c = (CollectionMapping)session.load(CollectionMapping.class, 1);
			System.out.println("list=" + c.getListValues().get(1));
		}catch(Exception e) {
			e.printStackTrace();
		}finally {
			HibernateUtils.closeSession(session);
		}
	}
	
}
分享到:
评论
1 楼 absolutej 2009-08-04  
楼主,你可以贴下相关的表的结构呢?
因为我在做hibernate set集合映射的时候遇见了一个问题
下面的url是我提出的问题:http://www.iteye.com/problems/22203
如果你在线,可以跟你交流下吗?谢谢

相关推荐

Global site tag (gtag.js) - Google Analytics