Hibernate中一对一关联实例
来源:互联网 发布:解剖生理学试题软件 编辑:程序博客网 时间:2024/05/23 14:30
Hibernate中双向关联中的一对一关联有两种形式:
以员工表和身份证号表为例
1. 员工中有员工的编号,姓名。
private int id;
private String name;
private IdCard idCard;
身份证号表中有编号,身份证号。
private int id;
private Date userfulLife;
private Person person;
但是其中身份证号表中的id既是主键又是外键。
那么在员工表的映射文件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="cn.itcast.hibernate.domain">
<class name="Person">
<id name="id" column="person_id">
<generator class="native"/>
</id>
<property name="name" column="person_name"/>
<one-to-one name="idCard" />
</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="cn.itcast.hibernate.domain">
<class name="IdCard" table="id_card">
<!-- id既是主键又是外键 -->
<id name="id" column="personID">
<generator class="foreign">
<param name="property">person</param>
</generator>
</id>
<property name="userfulLife" column="userful_life"/>
<!-- constrained="true"添加外键约束 -->
<one-to-one name="person" class="Person" constrained="true"/>
</hibernate-mapping>
/*********************************************************************************/
2. 第二种形式就是
表结构不变,注意这时身份证号表中的id是主键但不是外键,外键是另一个字段personId。
这样的话xml文件如何配置呢?
首先是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="cn.itcast.hibernate.domain">
<class name="Person">
<id name="id" column="person_id">
<generator class="native"/>
</id>
<property name="name" column="person_name"/>
<one-to-one name="idCard" property-ref="person" />
</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="cn.itcast.hibernate.domain">
<class name="IdCard" table="id_card">
<id name="id">
<generator class="native" />
</id>
<property name="userfulLife" column="userful_life"/>
<many-to-one name="person" unique="true" not-null="true" column="person_id"></many-to-one>
</class>
</hibernate-mapping>
- Hibernate中一对一关联实例
- Hibernate中一对一关联实例
- Hibernate中一对一关联实例
- Hibernate 一对一主键关联实例
- Hibernate的一对一关联实例
- 一个Hibernate一对一主键双向关联实例
- hibernate一对一外键单向关联实例
- hibernate一对一关联映射--
- hibernate一对一关联映射
- Hibernate一对一主键关联
- hibernate一对一关联映射
- hibernate一对一主键关联
- Hibernate一对一双向关联
- hibernate 一对一双向关联
- Hibernate单向“一对一”关联
- hibernate 一对一关联
- Hibernate一对一双向关联
- Hibernate单向一对一关联
- MFC之系统托盘实现与应用
- XCode解析xml配置注意事项
- ANDROID音频系统散记之一:A2dpAudioInterface
- SQL自连接
- AndroidManifest.xml文件中的android:windowSoftInputMode属性使用
- Hibernate中一对一关联实例
- 逐步改善,设计优秀API
- 申请n个连续字符存储单元,释放已分配的存储单元
- 【Java练习5】POJ 1604
- 【Java练习6】POJ 2305
- c++ 类中的成员函数在内存空间的分配问题
- C#加密解密
- JavaScript 高级语法(function(){})() 语法介绍
- joj2170