当属性不是子类时 我们用集合类
package hibernate.belle;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
public class Collection {
private int id;
private String name;
private Set set1;
private List list1;
private String[] arraylist;
private Map map1;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String[] getArraylist() {
return arraylist;
}
public void setArraylist(String[] arraylist) {
this.arraylist = arraylist;
}
public List getList1() {
return list1;
}
public void setList1(List list1) {
this.list1 = list1;
}
public Set getSet1() {
return set1;
}
public void setSet1(Set set1) {
this.set1 = set1;
}
public Map getMap1() {
return map1;
}
public void setMap1(Map map1) {
this.map1 = map1;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping >
<class name="hibernate.belle.Collection" table="t_collection" >
<id name="id">
<generator class="native"></generator>
</id>
<property name="name"></property>
<set name="set1" table="t_set">
<key column="set_id"></key>
<element type="string" column="set_value"></element>
</set>
<list name="list1" table="t_list">
<key column="list_id"></key>
<list-index column="list_index"></list-index>
<element type="string" column="list_value"/>
</list>
<array name="arraylist" table="t_arraylist">
<key column="array_id"></key>
<list-index column="array_index"></list-index>
<element type="string" column="array_value"/>
</array>
<map name="map1" table="t_map">
<key column="map_id" ></key>
<map-key type="string" column="map_index"></map-key>
<element type="string" column="map_value"></element>
</map>
</class>
</hibernate-mapping>
测试
package hibernate_manytomany;
import java.util.ArrayList;
import java.util.Date;
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 hibernate.belle.Collection;
import hibernate.belle.HibernateUtils;
import junit.framework.TestCase;
public class Extends extends TestCase{
@SuppressWarnings("unchecked")
public void teststore(){
Session session=null;
try{
session=HibernateUtils.getSession();
session.beginTransaction();
Collection c=new Collection();
Set set1=new HashSet();
set1.add("a");
set1.add("b");
c.setSet1(set1);
List list1=new ArrayList();
list1.add("c");
list1.add("d");
c.setList1(list1);
String[] ss=new String[]{"e","f"};
c.setArraylist(ss);
@SuppressWarnings("rawtypes")
Map map1=new HashMap();
map1.put("bb", "g");
map1.put("aa", "h");
c.setMap1(map1);
session.save(c);
session.beginTransaction().commit();
}catch(Exception e)
{
e.printStackTrace();
session.beginTransaction().rollback();
}finally{
HibernateUtils.closeSession(session);
}
}
public void testload(){
Session session=null;
try{
session=HibernateUtils.getSession();
session.beginTransaction();
Collection c=new Collection();
c=(Collection)session.get(Collection.class, 1);
System.out.println(c.getSet1());
System.out.println(c.getList1());
System.out.println(c.getArraylist());
System.out.println(c.getMap1());
String[] ss=c.getArraylist();
for(int i=0;i<ss.length;i++)
{
System.out.println("ss"+ss[i]);
}
session.beginTransaction().commit();
}catch(Exception e)
{
e.printStackTrace();
session.beginTransaction().rollback();
}finally{
HibernateUtils.closeSession(session);
}
}
}
注意 这里的字符串数组没有重写toString方法 所以呢 必须要自己循环打印