首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

hibernate 一对一双向联系关系_主键

2013-12-17 
hibernate 一对一双向关联_主键一对一映射分2种映射策略,一个是根据主键一样,另一个是根据外键一样。?注意

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>

?

至此,一对一双向主键策略完成。

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

热点排行