首先两个类,一个是班级类,一个是学生类:
public class Grade{
private int id;
private String name;
private Set students = new HashSet();
}
public class Student {
private int id;
private String studentName;
}
数据库中表的结构:
t_grade: 两个字段:id name
t_student: 三个字段:id studentName gradeid
Grade类的映射文件:Grade.hbm.xml(此时是单向关联)
<hibernate-mapping>
<class name="Grade" table="t_grade" lazy="false">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<strong><set name="students" cascade="save-update" lazy="false">
<key column=" gradeid "/>
<one-to-many class="Student"/>
</set></strong>
</class>
</hibernate-mapping>
现在执行以下java代码:
Set students = new HashSet();
Student s1 = new Student ();
s1.setStudentName("s1");
Student o2 = new Student();
s2.setStudentName ("s2");
students.add(s1);
students.add(s2);
Grade g = new Grade();
g.setName("g1");
g1.setStudents(students);
session.save(c);
此时Hibernate发出的sql语句如下:
Hibernat