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