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” 也沒有什麼作用。