<!-----------------------------建立组件类Friends.java-------------------------------------->
package com.michael.model;
import java.util.ArrayList;
import java.util.List;
public class Friends {
private String sex;
private String f_name;
private List<String> cars = newArrayList<String>();
private Person person;
public Friends() {
}
public Friends(String f_name, String sex) {
this.f_name = f_name;
this.sex = sex;
}
public List<String> getCars(){
return cars;
}
public void setCars(List<String>cars) {
this.cars = cars;
}
public Person getPerson() {
return person;
}
public void setPerson(Person person) {
this.person = person;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getF_name() {
return f_name;
}
public void setF_name(String fName) {
f_name = fName;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj != null &&obj.getClass() == Friends.class) {
Friends target = (Friends) obj;
if (target.getF_name().equals(getF_name())) {
return true;
}
}
return false;
}
@Override
public int hashCode() {
return getF_name().hashCode() * 13 +getSex().hashCode();
}
}
<!-------------------------------建立一个持久化类Person.java-------------------------------->
package com.michael.model;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
// default package
public class Person {
private String name;
private int age;
private int id;
//list集合
private List<String> schools =new ArrayList<String>();
//set集合
private Set<String> animas = newHashSet<String>();
//map集合
private Map<String, Integer>course = new HashMap<String,Integer>();
//map集合的属性为组件
private Map<String, Friends>friends = new HashMap<String,Friends>();
//组件为map集合的索引
private Map<Friends, Integer>friends2 = new HashMap<Friends,Integer>();
//组件属性为集合
private Friends friends1;
public Friends getFriends1() {
return friends1;
}
public void setFriends1(Friends friends1) {
this.friends1 = friends1;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public List<String> getSchools(){
return schools;
}
public voidsetSchools(List<String> schools){
this.schools = schools;
}
public Set<String> getAnimas(){
return animas;
}
public voidsetAnimas(Set<String> animas) {
this.animas = animas;
}
public Map<String, Integer>getCourse() {
return course;
}
public void setCourse(Map<String,Integer> course) {
this.course = course;
}
public Map<String, Friends>getFriends() {
return friends;
}
public void setFriends(Map<String,Friends> friends) {
this.friends = friends;
}
public Map<Friends, Integer>getFriends2() {
return friends2;
}
public void setFriends2(Map<Friends,Integer> friends2) {
this.friends2 = friends2;
}
}
<!----------------------------建立持久化类对应的映射文件Person.hbm.xml-------------------------->
<?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="com.michael.model.Person"table="person">
</hibernate-mapping>
<!------------------建立一个junit测试--------------------------------->
package com.michael.test;
import junit.framework.TestCase;
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 org.hibernate.Transaction;
import com.michael.HibernateSessionFactory;
import com.michael.model.Friends;
import com.michael.model.Person;
public class Test extends TestCase {
public void testOrm(){
Session session = HibernateSessionFactory.getSession();
//映射list集合
List<String> schools = newArrayList<String>();
schools.add("1");
schools.add("2");
schools.add("3");
//映射set集合
Set<String> animas = newHashSet<String>();
animas.add("3");
animas.add("3q");
animas.add("3e");
//映射map集合
Map<String,Integer> course = newHashMap<String,Integer>();
course.put("a", 80);
course.put("b", 90);
course.put("c", 85);
//组件属性为集合
List<String> cars = newArrayList<String>();
cars.add("bmw");
cars.add("奔驰");
//map集合属性为组件
Friends f = new Friends();
f.setF_name("AA");
f.setSex("男");
f.setCars(cars);
Map<String,Friends> maps = newHashMap<String,Friends>();
maps.put("1", f);
//组件为map集合的索引
Map<Friends,Integer> maps2 = newHashMap<Friends, Integer>();
maps2.put(f, 45);
Person p
= new Person();
p.setSchools(schools);
p.setAnimas(animas);
p.setCourse(course);
p.setFriends1(f);
p.setFriends(maps);
p.setFriends2(maps2);
Transaction tr = session.beginTransaction();
tr.begin();
session.save(p);
tr.commit();
HibernateSessionFactory.closeSession();
}
}
运行junit测试,如果成功,那么在各个数据库表中都会有对应的数据插入。