首先是映射文件的配置
teacher
<hibernate-mapping> <class name="pojo.Teacher" table="teacher" > <id name="t_ID" column="ID"> <generator class="identity"/> </id> <property name="name" column="name"/> </class> </hibernate-mapping>
student
<class name="pojo.Student" table="student" > <id name="s_ID" column="ID"> <generator class="identity"/> </id> <property name="name" column="name"/> <!--cascade="all"属性用于设置级联保存,即只需要显式保存多的一方即可 --> <many-to-one name="teacher" column="teacherId" not-null="true" cascade="all"> </many-to-one> </class>
其次是类
public Teacher() { } private Integer t_ID; private String name; private Set<Student> students = new HashSet<Student>();
private Integer s_ID; private String name; private Teacher teacher;
最后是调用
public static void onetomany() { Session s = HibernateUtil.getSession(); Teacher t = new Teacher(); Student stu = new Student(); t.setName("a1"); stu.setName("asd"); Transaction tx = s.beginTransaction(); //首先保存一的一方 //s.persist(t); stu.setTeacher(t); s.persist(stu); tx.commit(); }