一、hibernate中一对一映射有两种
1 主键方式,一张表的主键是通过另一张表的主键生成的
2 外键方式,一张表添加外键引用另一张表的主键,并添加唯一unique约束
二、下面进行简单例子,用户和身份证
建表
CREATE TABLE USER( id INT PRIMARY KEY AUTO_INCREMENT, uname VARCHAR(50) NOT NULL); CREATE TABLE idcard( id INT PRIMARY KEY AUTO_INCREMENT, addr VARCHAR(500) NOT NULL, uid INT, FOREIGN KEY (uid) REFERENCES USER(id), UNIQUE (uid));
2 映射文件
User.hbm.xml
<hibernate-mapping package="com.baidu.entity2"> <class name="User" table="user"> <id name="id" column="id"> <generator class="native"/> </id> <property name="uname" column="uname"></property> <one-to-one name="idCard" class="IdCard"></one-to-one> </class> </hibernate-mapping>
<hibernate-mapping package="com.baidu.entity2"> <class name="IdCard" table="idcard"> <id name="id" column="id"> <generator class="native"/> </id> <property name="iaddr" column="addr"></property> <many-to-one name="user" class="User" column="uid" unique="true" cascade="save-update"></many-to-one> </class> </hibernate-mapping>
需要注意和多对一的区分。