一对一外键关联
一对一外键关联使用的是多对一关联策略,只是在多的一端外键上添加一个unique约束来实现一对一
实体类:
package com.chris.entity;/** * 人 * @author Administrator * */public class Person {private int id;private String name;private IDCard idCard;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public IDCard getIdCard() {return idCard;}public void setIdCard(IDCard idCard) {this.idCard = idCard;}}?
package com.chris.entity;/** * 身份证 * @author Administrator * */public class IDCard {private int id;private String cardNo;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getCardNo() {return cardNo;}public void setCardNo(String cardNo) {this.cardNo = cardNo;}}?
映射文件:
Person.hbm.xml
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping package="com.chris.entity"><class name="Person"><id name="id"><generator /></id><property name="name" /><many-to-one name="idCard" column="idCard_id"unique="true" not-null="false" /></class></hibernate-mapping>
?IDCard.hbm.xml
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="com.chris.entity"> <class name="IDCard"> <id name="id"> <generator class="native"/> </id> <property name="cardNo"/> </class> </hibernate-mapping>
?