hibernate 一对一双向关联_主键
一对一映射分2种映射策略,一个是根据主键一样,另一个是根据外键一样。
?
注意到:one2one标签,只影响加载,不影响存储。
?
首先,讲主键。
?
1.单向一对一。
以Person类和IdCard类为例, 假设需求是根据Person找到IdCard,那么各个类如下:
?
package com.bjpowernode.hibernate.domain;public class Person {private int id;private String name;private IdCard idCard;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getId() {return id;}public void setId(int id) {this.id = id;}public IdCard getIdCard() {return idCard;}public void setIdCard(IdCard idCard) {this.idCard = idCard;}}?
Person配置文件:
?
<?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><class name="com.bjpowernode.hibernate.domain.Person" table="t_person"><id name="id"><generator constrained="true" /></class></hibernate-mapping>
?
IdCard类:
?
package com.bjpowernode.hibernate.domain;import java.util.Set;public class IdCard {private int id;private String name;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getId() {return id;}public void setId(int id) {this.id = id;}/*public Set getStudents() {return students;}public void setStudents(Set students) {this.students = students;}*/}?
IdCard配置文件:
?
<?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><class name="com.bjpowernode.hibernate.domain.IdCard" table="t_idcard"><id name="id"><generator name="code">package com.bjpowernode.hibernate.domain;public class IdCard {private int id;private String name;private Person person;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getId() {return id;}public void setId(int id) {this.id = id;}public Person getPerson() {return person;}public void setPerson(Person person) {this.person = person;}}?
IdCard配置文件:
?
<?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><class name="com.bjpowernode.hibernate.domain.IdCard" table="t_idcard"><id name="id"><generator class="native"/></id><property name="name"/><one-to-one name="person"/></class></hibernate-mapping>
?
至此,一对一双向主键策略完成。
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?