`

hibernate学习笔记第6讲-一对一主键关联映射one-to-one

阅读更多

 

Hibernate一对一主键关联:

1,单向主键关联:person--------idCard


 

 

Person的主键id作为一个外键参照idCard的主键id。键值都是一样的。

让两个实体的主键id保持相同,这样避免多余字段被创建。

Person.hbm.xml:

<hibernate-mapping>

         <class name="com.bjsxt.hibernate.Person" table="t_person">

                   <id name="id">

                            //person的主键来源于idCard,共享idCard的主键。

                            <generator class="foreign">

                                     <param name="property">idCard</param>

                            </generator>

                   </id>

                   <property name="name"/>

                  //指示hibernate怎么加载他的关联对象idCard,默认根据主键加载

                   // constrained="true" 表示当前主键存在一个约束,Person的主键id作为一个外键参照idCard的主键id,如果去掉就不会生出外键关联约束

                   <one-to-one name="idCard" constrained="true"/>

         </class>

</hibernate-mapping>

 

IdCard.hbm.xml:

<hibernate-mapping>

         <class name="com.bjsxt.hibernate.IdCard" table="t_idcard">

                   <id name="id">

                            <generator class="native"/>

                   </id>

                   <property name="cardNo"/>

         </class>

</hibernate-mapping>

 

session.beginTransaction();

                           

                            IdCard idCard = new IdCard();

                            idCard.setCardNo("88888888888888");

                           

                            Person person = new Person();

                            person.setName("10");

                            person.setIdCard(idCard);

                           

                            //没有保存idCard

                            //不会出现TransientObjectException异常

                            //因为一对一主键关联映射中,默认了cascade属性

//因为person的主键参考idCard的主键,必须先有idCard

//只有一对一关联映射特殊

                            session.save(person);

                           

                            session.getTransaction().commit();

 

 

2,双向主键关联:person --------idCard



 跟单向关联唯一不同的是:在另一端也加上one-to-one标签

<hibernate-mapping>

<class name="com.bjsxt.hibernate.IdCard" table="t_idcard">

           <id name="id">

                    <generator class="native"/>

           </id>

           <property name="cardNo"/>

           //指示hibernate如何加载person,默认根据主键加载

         <one-to-one name="person"/>

</class>

</hibernate-mapping>

  • 大小: 22.3 KB
  • 大小: 28.8 KB
分享到:
评论

相关推荐

    Hibernate学习笔记特别详细

    《Hibernate学习笔记特别详细》 Hibernate,作为一款开源的Object-Relational Mapping(ORM)框架,为Java开发者提供了强大的数据库操作支持。它简化了数据库访问的复杂性,使得开发人员可以像操作对象一样操作...

    Hibernate学习笔记整理

    Hibernate学习笔记整理 以下是 Hibernate 框架的详细知识点: Hibernate 介绍 Hibernate 是一个 ORM(Object-Relational Mapping)框架,用于将 Java 对象映射到数据库表中。它提供了一个简洁的方式来访问和操作...

    hibernate学习笔记文档

    ### Hibernate 学习笔记知识点概览 #### 一、Hibernate 概述 - **定义**:Hibernate 是一款开源的对象关系映射(ORM)框架,它实现了将 Java 应用程序中的对象模型映射到关系型数据库中的记录。通过 ORM 技术,...

    达内HIBERNATE学习笔记

    - `&lt;one-to-one&gt;`、`&lt;one-to-many&gt;`、`&lt;many-to-many&gt;`:表示关联关系的映射。 #### 2.3 id的内置生成器 - **常见生成器**: - `increment`:每次生成一个递增的值。 - `identity`:由数据库自动生成唯一标识符...

    hibernate学习笔记

    ### Hibernate学习笔记 #### 第一个Hibernate项目(hibernate_first) 在进行Hibernate的学习时,首先会接触到的是如何创建一个简单的Hibernate项目。以下是一些关键步骤: 1. **新建Java项目**: - 首先,在...

    我的hibernate学习笔记(4)完 ---附完整word格式文件

    在本篇“我的Hibernate学习笔记(4)完”中,我们将深入探讨Hibernate这一流行的Java对象关系映射(ORM)框架,以及如何通过源码和工具进行高效开发。这篇笔记不仅包含理论知识,还提供了实际操作的指导,以帮助读者更...

    hibernate学习笔记第二天的源码

    在深入探讨Hibernate学习笔记第二天的源码之前,我们先来理解一下Hibernate的核心概念。Hibernate是一个开源的对象关系映射(ORM)框架,它允许Java开发者将数据库操作转化为对象模型,大大简化了数据访问层的开发...

    Hibernate学习笔记_songjignhao_1

    联合主键映射涉及到多个字段共同构成主键的情况,可以使用 `&lt;composite-id&gt;` 标签来定义这些字段,并通过 `&lt;key-property&gt;` 或 `&lt;key-many-to-one&gt;` 子标签映射每个组成部分。 组件映射允许我们将一个类的属性映射...

    Java相关课程系列笔记之十四Hibernate学习笔记

    【Java相关课程系列笔记之十四Hibernate学习笔记】 Hibernate是一个开源的对象关系映射(ORM)框架,它极大地简化了Java应用程序对数据库的操作。本笔记将详细阐述Hibernate的核心概念、使用方法和特性。 一、...

    hibernate 学习笔记小结

    ### Hibernate学习笔记小结 #### 一、简介与配置 **Hibernate** 是一款开源的对象关系映射(ORM)框架,它允许开发人员将Java对象自动持久化到数据库表中,从而简化了数据访问层的开发工作。在Spring框架中,...

    马士兵hibernate学习笔记

    ### 马士兵 Hibernate 学习笔记概览 #### 一、Hello World 示例 - **简介**:通过简单的示例程序来快速入门 Hibernate 框架。 - **步骤**: 1. 创建 Java 项目 `hibernate_0100_HelloWorld`。 2. 构建 User-...

    Hibernate学习笔记与总结

    **Hibernate学习笔记与总结** Hibernate 是一款开源的对象关系映射(ORM)框架,它为Java开发者提供了一种在关系数据库上操作对象数据的便捷方式。本文将深入探讨Hibernate的核心概念、配置、实体类、映射文件、...

    hibernate-note学习笔记

    ### hibernate-note学习笔记知识点详解 #### 一、对象持久化 **1.1 概述** 对象持久化是指将程序中的对象状态保存到非易失性存储中(如硬盘或磁盘等),以便在系统重启后仍能保留这些状态。这种技术常用于将对象的...

Global site tag (gtag.js) - Google Analytics