首先感谢尚学堂的王勇老师!!!
多对一
会在多的一端加入一个外键,指向一的一端,这个外键是由中的column属性定义的,如果忽略了这个属性那么默认的外键与实体的属性一致。
标签的定义示例:
使用级联:
<many-to-one name="group" column="groupid" cascade="all"/>
默认不使用级联:
<many-to-one name="group" column="groupid"/>
注:cascade="all|none|save-update|delete"
这种方式下数据库中多的一端产生外键。如果persistent状态的对象引用transient状态的对象会抛出TransientObjectException异常。
一对一主键关联(单向)
让两个实体对象的id保持相同,这样可以避免多余的字段被创建
<id name="id">
<!-- person的主键来源idCard,也就是共享idCard的主键 -->
<generator class="foreign">
<param name="property">idCard</param>
</generator>
</id>
<property name="name"/>
<!-- one-to-one标签的含义,指示hibernate怎么加载它的关联对象,默认根据主键加载,
constrained="true", 表明当前主键上存在一个约束,person的主键作为外键参照了idCard
-->
<one-to-one name="idCard" constrained="true"/>
一对一主键关联映射中,默认了cascade属性
主键充当外键
一对一主键关联(双向)
分享到:
相关推荐
《Hibernate学习笔记特别详细》 Hibernate,作为一款开源的Object-Relational Mapping(ORM)框架,为Java开发者提供了强大的数据库操作支持。它简化了数据库访问的复杂性,使得开发人员可以像操作对象一样操作...
在高级主题中,笔记会涉及一对多、多对一、一对一和多对多的关系映射。这些关系映射是ORM的核心特性,使得Java对象与数据库表之间的关联得以建立。此外,还会讲解懒加载(Lazy Loading)和即时加载(Eager Loading)...
本篇笔记主要聚焦于JPA的关联映射,这是JPA中一个重要的概念,用于定义实体之间的关系。 关联映射允许我们将数据库中的表关系映射到Java对象的关联上。在Hibernate中,这些关系通常通过XML配置文件来定义,而在JPA...
- 关联映射:涵盖一对一、一对多、多对一、多对多等关联关系的配置和操作。 - 缓存机制:介绍Hibernate的一级缓存(Session级别)和二级缓存(SessionFactory级别),以及如何配置和利用缓存提高性能。 - 事务管理:...
Hibernate支持多种关联映射,如一对一、一对多、多对一、多对多。在源码中,开发者可能展示了如何通过XML映射文件或注解配置这些关联,并演示了如何在代码中处理这些关系。 通过分析`hibernate_day02`的源码,我们...
- 对象关系映射:将Java对象与数据库表建立一对一、一对多、多对一、多对多的映射关系。 - 缓存机制:提供第一级缓存(Session级别的)和第二级缓存(SessionFactory级别的),提高性能。 - 支持懒加载和立即加载:...
### Hibernate 学习笔记知识点概览 #### 一、Hibernate 概述 - **定义**:Hibernate 是一款开源的对象关系映射(ORM)框架,它实现了将 Java 应用程序中的对象模型映射到关系型数据库中的记录。通过 ORM 技术,...
5. **关系映射**:Hibernate支持多种关系映射,如一对一、一对多、多对一、多对多,通过配置文件或注解定义实体间的关联,使得对象间的复杂关系能在数据库中准确反映。 6. **Hibernate查询**:Hibernate提供HQL...
1. 合理设计实体类,避免过多的一对多关系。 2. 使用懒加载以提高性能。 3. 使用事务管理,确保数据一致性。 4. 避免在循环中执行查询,可能导致大量数据库交互。 5. 使用二级缓存,提高应用性能。 6. 谨慎使用级联...
例如,一对一、一对多、多对一、多对多的关系都可以通过配置文件或注解进行映射。通过这种方式,我们可以在Java对象之间直接操作相关联的数据,而无需关心底层的SQL。 在Struts等MVC框架中整合Hibernate,可以构建...
7. **一对多、一对一和多对多关系映射**:这部分内容将解释如何配置和处理不同类型的关联关系,包括外键映射、集合映射等。 8. **缓存机制**:Hibernate提供了一级缓存和二级缓存,能有效减少数据库访问,提高应用...
- 可能会包含对复杂关联关系的处理,如多对一、一对多、多对多关系的映射。 - 可能涉及到Hibernate与其他技术的整合,如Spring、MyBatis等。 7. **进阶话题** - **Hibernate逆向工程**: 自动根据数据库表生成...
本文将基于第一天学习Hibernate的笔记,详细解析其基本操作与实现。 首先,引入Hibernate所需的库文件至关重要。这包括Hibernate的核心库以及相应的数据库驱动JAR包。这些库文件提供了对ORM操作的支持,使得Java...
第四课:hibernate多对一关联映射 ...................... Spring: 第一课:构建Spring的环境并建立一个例子 第三课:spring Bean的作用域 第四课:spring对AOP的只是(采用Annotation的方式) 第五课:spring对AOP...
**hibernate 3.3学习笔记** 在深入探讨Hibernate 3.3的学习笔记之前,首先需要理解Hibernate是什么。Hibernate是一个强大的开源Java持久化框架,它简化了数据库操作,允许开发者将精力集中在业务逻辑上而不是数据库...
5. **java_hibernate_day05.pdf** - 最后一天的学习可能涵盖了高级主题,如关联映射(一对一、一对多、多对多)、懒加载、缓存机制(一级缓存和二级缓存)以及事务管理。这些内容帮助开发者更好地理解和优化应用程序...
7. **一对多、多对一、一对一和多对多关系映射**:在数据库设计中常见的关联关系,笔记会详细讲解如何在Hibernate中配置和操作这些关系,包括联合主键、外键约束等。 8. **懒加载与立即加载**:Hibernate提供了懒...
#### 3.3 一对一关联 - **特点**:一个实体只能与另一个实体关联。 - **实现方式**:可以使用外键或单独的关联表。 #### 3.4 一对多关联 - **特点**:一个实体可以与多个实体关联。 - **实现方式**:通常使用外键。...