1
首先我先建立三个表:Student(学生),Lab(实验室),Part(党)
Student:
Lab:
Part:
假如党员都是学生,因此在党员这个表中为了让每一个党员对应一个学生,我们在党员这个表中添加来学生的studentID,这样就可以让学生和党员一一对应起来.
Student类:
public class Student {
private int studentID;
private String studentName;
public int getStudentID() {
return studentID;
}
public void setStudentID(int studentID) {
this.studentID = studentID;
}
public String getStudentName() {
return studentName;
}
public void setStudentName(String studentName) {
this.studentName = studentName;
}
}
Part类:
public class Part {
private int partID;
private Student student;
public int getPartID() {
return partID;
}
public void setPartID(int partID) {
this.partID = partID;
}
public Student getStudent() {
return student;
}
public void setStudent(Student student) {
this.student = student;
}
}
Student配置文件:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="model">
<class table="Student" name="Student">
<id name="studentID" column="studentID" type="int">
<generator class="increment"></generator>
</id>
<property name="studentName" column="studentName" type="string"></property>
<one-to-one name="part" class="Part" property-ref="student" cascade="all"></one-to-one>
</class>
</hibernate-mapping>
Part配置文件:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="model">
<class table="Part" name="Part">
<id name="partID" column="partID" type="int">
<generator class="increment"></generator>
</id>
<many-to-one name="student" column="studentID" class="Student"></many-to-one>
</class>
</hibernate-mapping>
Configuration configuration=new Configuration();
configuration.configure("hibernate-cfg.xml");
SessionFactory sessionFactory=configuration.buildSessionFactory();
Session session=sessionFactory.openSession();
Transaction transaction=session.beginTransaction();
Student student=new Student();
student.setStudentName("student");
Part part=new Part();
part.setStudent(student);
student.setPart(part);
session.save(part);
session.save(student);
transaction.commit();
经过测试我发现这样设置了外键关联,但是只实现来部分外键关联,即使我在配置文件当中加入来cascade=”all” 也没有什么作用。