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

Hibernate中一对一联系关系

2012-10-06 
Hibernate中一对一关联在hibernate中实现一对一的关联有两种方法,分别是共享主键关联和唯一外键关联?(1)共

Hibernate中一对一关联

在hibernate中实现一对一的关联有两种方法,分别是共享主键关联和唯一外键关联

?

(1)共享主键关联

有两个表 user和profile

?

user表中有id(主键) username password

?

profile表中有id(主键) email phone

?

其实profile表正是从user表中分割出来的,

?

设置相应的类User类,和profile类

?

user类中的字段

??? private Integer id;
??? private String username;
??? private String password;
??? private Profile profile;

生成对应的get/set方法

?

profile表中的字段

??? private Integer id;
??? private String email;
??? private String phone;
??? private User user;

生成对应的get/set方法

?

在User.hbm.xml中

??? <class name="com.cheng.entry.User" table="user">
?? ??? ?<id name="id" type="java.lang.Integer">
?? ??? ??? ?<column name="id"></column>
?? ??? ??? ?<generator type="java.lang.String">
?? ??? ??? ?<column name="username" length="200"></column>
?? ??? ?</property>
?? ??? ?<property name="password" type="java.lang.String">
?? ??? ??? ?<column name="password" length="200"></column>
?? ??? ?</property>
?? ??? ?<one-to-one name="profile(这个就是user表中设置的属性)" table="profile">
??? ??? <id name="id" type="java.lang.Integer">
??? ??? ??? <column name="id"></column>
??? ??? ??? <generator type="java.lang.String">
??? ??? ??? <column name="email" length="200"></column>
??? ??? </property>
??? ??? <property name="phone" type="java.lang.String">
??? ??? ??? <column name="phone" length="200"></column>
??? ??? </property>
??? ??? <one-to-one name="user" table="profile">
??? ??? <id name="id" type="java.lang.Integer">
??? ??? ??? <column name="id"></column>
??? ??? ??? <generator type="java.lang.String">
??? ??? ??? <column name="email" length="200"></column>
??? ??? </property>
??? ??? <property name="phone" type="java.lang.String">
??? ??? ??? <column name="phone" length="200"></column>
??? ??? </property>
??? ??? <many-to-one name="user" unique="true">
??? ??? ??? <column name="u_id"></column>
??? ??? </many-to-one>
??? </class>

?

红色的字体表示修改过的

热点排行