Hibernate 一对一 关系的实现(共享主键)
实体类 Student 和 StudentInfo 是一对一的关系.可以采用共享主键或者外键约束的形式进行连接
构造实体类:
?
public class Student { private int sid; private String name; private String password; private StudentInfo stdinfo; //这一条一定要加,下面省略了无参构造和getter setter } public class StudentInfo { private int sinfoid; private String email; private int qq; private String address; private Student student; //这一条一定要加,下面省略了无参构造和getter setter }?
映射文件的写法:
student.hbm.xml:
?
<hibernate-mapping package="day3.entity"> <class name="day3.entity.Student" table="student1"> <id column="id" name="sid"> <generator lazy="false" name="name"/> <property generated="never" lazy="false" name="password"/> <one-to-one name="stdinfo" cascade="all"/> <!-- 主要是注意这里--> </class></hibernate-mapping>
??
//=====================================================================
studentinfo.hbm.xml:
?
<hibernate-mapping> <class name="day3.entity.StudentInfo" table="studentinfo"> <id column="sinfoid" name="sinfoid"> <generator lazy="false" name="email"/> <property generated="never" lazy="false" name="qq"/> <property generated="never" lazy="false" name="address"/> <one-to-one name="student"></one-to-one> <!--这里必不可少--> </class></hibernate-mapping>
?