Teacher.java
package com.wansha.pojo;
import java.util.HashSet;
import java.util.Set;
public class Teacher{
private int id;
private String name;
private Set<Student> set = new HashSet<Student>();
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 Set<Student> getSet() {
return set;
}
public void setSet(Set<Student> set) {
this.set = set;
}
}
Student.java
package com.wansha.pojo;
public class Student{
private int team_id;
private String name;
public int getTeam_id() {
return team_id;
}
public void setTeam_id(int teamId) {
team_id = teamId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Teacher.hbm.xml (不需要建立Student.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.wansha.pojo.Teacher" table="teacher">
<id name="id" column="id" type="int">
<generator class="identity"></generator>
</id>
<property name="name" column="name" type="string" />
<set name="set" table="student" cascade="all">
<key column="teacher_id"/>
<composite-element class="com.wansha.pojo.Student">
<property name="name" column="name" type="string"></property>
</composite-element>
</set>
</class>
</hibernate-mapping>
Test.java
package com.wansha.util;
import java.util.Iterator;
import java.util.Set;
import org.hibernate.Session;
import org.hibernate.Transaction;
import com.wansha.pojo.Student;
import com.wansha.pojo.Teacher;
public class Test {
public static void main(String[] args) {
/* Teacher teacher = new Teacher();
teacher.setName("teacher zhang");
Student student1 = new Student();
student1.setName("sharp");
Student student2 = new Student();
student2.setName("hailie");
teacher.getSet().add(student1);
teacher.getSet().add(student2);
Session session = HibernateUtil.getSession();
Transaction ts = null;
try{
ts = session.beginTransaction();
session.save(teacher);
ts.commit();
}catch(Exception ex){
if(ts != null)ts.rollback();
ex.printStackTrace();
}finally{
HibernateUtil.close(session);
}
*/
Session session = HibernateUtil.getSession();
Transaction ts = null;
try{
ts = session.beginTransaction();
Teacher teacher = (Teacher)session.get(Teacher.class, 1);
Set<Student> set = teacher.getSet();
System.out.println(set.iterator().next().getName());
// for(Iterator<Student> iter = set.iterator();iter.hasNext();){
// System.out.println(iter.next().getName());
// }
// ts.commit(); //此句多出两句delete和insert语句
}catch(Exception ex){
if(ts != null)ts.rollback();
ex.printStackTrace();
}finally{
HibernateUtil.close(session);
}
}
}