Session接口
容易混淆的概念;
save()方法
将一个实例加入到缓存中。并不是在缓存中拷贝一份这个实例。
所以当一个实例由临时对象或者游离对象转为持久化对象后,地址不变。
将任何一个实例转入持久化对象这个过程:
1.将对象的OID赋新值。
2.将对象加入缓存。
merge()方法
当缓存里已有一个对象时,此时将一个游离对象(两者OID相同)update,/;会报错。
必须用merge方法.
update()方法
先决条件,对象不能是已经在缓存中有相同OID的游离对象。否则用merge方法。
<class select-before-update="true/false">属性意义
更新前先select一下,看看哪些属性更新了。没有则不更新。用在不经常变动的类。
在做双向关联时,在session内先做一个一对多关联,此时这只是在缓存做了一对多关联。所以这时想要反查,多对一,则查询不到,除非再做多对一,可以查到。要么就是做完一对多时,关闭session,让数据入库,再打入session查多对一,这时数据出来了。
所以对于session里的操作,大家一定要脑子时刻清楚,这只是对内存操作,而不是数据库。
关联的概念
孙卫琴说的好,关系数据库只有多对一的概念。一对多是多对一的双向关联。
所以必须先 many-to-one,才能 one-to-many。由于在hibernate里,类即是表 的概念,所以关联以实体类做外键。
外键的定义先要弄清楚,百度知道上是这么写的。
如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键。由此可见,外键表示了两个关系之间的联系。以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表。外键又称作外关键字。
外键的作用:
保持数据一致性,完整性,主要目的是控制存储在外键表中的数据。 使两张表形成关联,外键只能引用外表中的列的值!
这段话用hibernate来配置是这样:
<one-to-many name>
<key column="从表中的外键字段">
<class name="从表" />
</one-to-many>
分享到:
相关推荐
### Hibernate基础知识详解 #### 一、持久层概述 **1. 持久层的位置** 持久层位于应用程序架构中业务逻辑层与数据访问层之间,它的主要职责是处理应用程序的数据持久化需求,即将数据从内存中保存到某种持久化...
**Hibernate基础知识积累** Hibernate是一个强大的Java持久化框架,它简化了数据库操作,使得开发者能够更加专注于业务逻辑,而不是底层的数据存取细节。本篇将深入探讨Hibernate的核心概念、配置、对象关系映射...
本示例代码旨在帮助初学者理解和掌握Hibernate的基础知识。 1. **Hibernate概述** Hibernate是Java开发中的一个开源框架,它提供了对象-关系映射(ORM)功能,使得在Java应用中处理数据库变得更为简单。通过...
### Hibernate基础知识点详解 #### 一、什么是对象关系映射(ORM)以及为什么使用ORM? 在企业级应用开发中,持久层(persistence layer)占据了非常重要的地位。它主要负责处理与数据库之间的交互,包括数据的...
SSH基础知识之Hibernate,hibernate,spring,struts,ssh
下面将详细介绍Hibernate的基础知识及其核心组件。 1. **对象关系映射(ORM)**: Hibernate 是一种 ORM 解决方案,它通过映射 Java 类到数据库表,实现了程序对象与数据库记录之间的对应。这使得开发者无需编写...
**Hibernate基础知识** 1. **什么是Hibernate**:Hibernate是一个开源的Java ORM框架,它简化了Java应用与关系数据库之间的交互。通过提供一套API,Hibernate可以将Java对象自动持久化到关系数据库中,反之亦然,...
### Hibernate基础知识点详解 #### 一、Hibernate简介与优势 **Hibernate** 是一款开源的对象关系映射(ORM)框架,它允许开发者以面向对象的方式来处理数据库操作,从而简化了Java应用与关系型数据库之间的交互。...
**Hibernate基础知识点** 1. **数据访问层**:在三层架构中,数据访问层主要负责数据的增删改查操作,即B选项所指的,它处理与数据库交互的细节,将业务逻辑与数据存储分离。 2. **Hibernate概述**:Hibernate是一...
**Hibernate基础** Hibernate是一款强大的Java持久化框架,它简化了数据库与Java...通过学习和实践这些Hibernate基础知识,开发者可以更好地理解和利用Hibernate的强大功能,提高开发效率,降低数据库操作的复杂性。
本PPT由传智播客制作,旨在帮助学习者掌握Hibernate的基础知识和应用。 首先,我们需要理解基于B/S(Browser/Server)的三层架构。这种架构通常分为展现层、业务逻辑层和数据持久层: 1. **展现层**:负责与用户...
【Hibernate基础教程】 ...本教程旨在提供全面的Hibernate基础知识,帮助读者理解其工作原理,从而在实际项目中灵活运用。通过学习,你将能够熟练地使用Hibernate进行数据持久化操作,提升开发效率。
这个资源包包含了“chapter07”目录下的源代码,是学习Hibernate基础知识的理想起点。让我们逐步解析这些源代码,了解Hibernate的基本使用方法。 ### Hibernate ORM 概念 Hibernate 提供了一种在Java应用中管理和...
1. **Hibernate基础知识**:首先,你会了解Hibernate的基本概念,包括其设计理念、核心组件以及如何在项目中集成Hibernate。这包括Hibernate的配置文件、实体类、持久化对象(POJOs)、映射文件等基本元素。 2. **...
一、Hibernate基础知识 1. 实体类:在Hibernate中,我们定义一个Java类来代表数据库中的一个表,这个类被称为实体类。实体类的属性对应于数据库表的列,而实体类的对象则代表表的行。 2. 注解配置:使用Java注解来...
总之,“hibernate example”涵盖了从零开始建立一个简单的Hibernate应用的全过程,包括环境配置、实体建模、持久化操作和查询,对于初学者来说,这是掌握Hibernate基础知识的重要实践。通过这样的练习,开发者能够...
**Hibernate基础知识:** 1. **对象关系映射(ORM)**:Hibernate是JPA的实现,它允许我们将Java对象与数据库表进行映射,使得我们可以直接操作对象,而无需编写SQL语句。 2. **实体类**:在Hibernate中,我们定义...