`
- 浏览:
408180 次
- 性别:
- 来自:
北京
-
Hibernate数据保存——Session.save
Session.save方法用户实体对象到数据库的持久化操作。也就是说,Session.save方法调用与实体对象所匹配的Insert SQL,将数据插入库表。Session.save方法中包含了以下几个主要步骤:
1. 在Session内部缓存中寻找待保存的对象。内部缓存命中,则认为此数据已经保存(执行过insert操作),实体对象已经处于Persistent状态,直接返回。此时,即使数据相对之前状态已经发生了变化,也将在稍后的事务提交时,由脏数据检查过程加以判断,并根据判断结果决定是否要执行对应的 Update操作。
2. 如果实体类实现了Lifecycle接口,则调用待保存对象的onSave方法。
3. 如果实体类实现了Validatable接口,则调用其validate方法
4. 调用对应拦截器的Interceptor.onSave方法(如果有的话)
5. 构造Insert SQL,并执行
5. 记录插入成功,实体对象的id被设定未insert操作返回的新记录id值
7. 将user对象放入内部缓存。这里值得一提的时save方法不会把实体对象纳入二级缓存,因为通过save方法保存的实体对象,在事务的剩余部分中被修改的几率往往很高,缓存的频繁更新以及随之而来的数据同步问题的代价,已经超过了此数据得到重用的可能收益,得不偿失。
8. 最好,如果存在级连关系,对级连关系进行递归处理。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
### Hibernate使用缓存时的数据同步问题详解 #### 引言 在现代软件开发中,ORM框架如Hibernate被广泛应用于数据库操作,以简化Java应用程序与数据库之间的交互。然而,使用Hibernate时,缓存机制的合理配置对于...
在Java开发中,尤其是涉及到大数据量的处理时,人们往往会质疑ORM框架,如Hibernate,是否适合进行批量数据操作。然而,实际上,通过适当的技术手段,我们可以有效地解决Hibernate在批量处理时可能出现的性能问题。...
标题中的"hibernate保存不到数据1"是一个关于Hibernate框架在尝试保存数据到数据库时遇到问题的场景。描述提到了一个具体的解决方案,即通过在`hibernate.cfg.xml`配置文件中设置`connection.autocommit`属性为`true...
标题"hibernate入门数据简单插入"指的是使用Hibernate框架进行数据库的基本操作,特别是数据的插入。Hibernate是一个开源的对象关系映射(ORM)框架,它允许Java开发者在应用程序中处理数据库对象,而无需直接编写...
这篇文章将详细讲解如何在Hibernate中保存这两种特殊类型的数据。 BLOB用于存储二进制大对象,如图片、音频或视频文件等;而CLOB则用于存储字符型的大数据,例如长文本、XML文档等。在Java中,Blob和Clob是JDBC API...
### Hibernate保存图片知识点详解 #### 一、引言 在Web开发中,处理用户上传的图片是一项常见的需求。本文档将详细介绍如何利用Hibernate框架将图片数据直接存储到数据库的Blob字段中。通过这种方式,可以避免在...
- **数据持久化**: 指的是程序中的对象状态在系统重启后仍然能够保存,即使没有内存支持也能保持其状态。在Hibernate中,数据持久化是通过对象和数据库记录之间的映射实现的。 2. **Hibernate 配置** - **...
Hibernate是Java领域中最流行的ORM框架之一,它通过元数据来定义对象和数据库表之间的映射关系,使得Java对象可以直接被存储和检索,而无需编写大量的SQL语句。 在ORM中,POJO(Plain Old Java Object)是一个简单...
1. **创建(Create)**:用户通过ExtJS的表单组件输入新数据,点击“创建”按钮,Struts2接收请求并调用Spring管理的Service层方法,Service层再通过Hibernate保存数据到数据库。 2. **读取(Read)**:为了显示...
2. **例子1 - 用户注册**:创建一个简单的用户注册系统,用户填写表单后,Struts Action接收请求,利用Hibernate保存数据到数据库。 3. **例子2 - 数据展示**:展示从数据库中检索的数据,可能涉及使用Struts的...
在IT行业中,Hibernate是一个非常重要的Java持久化框架,它简化了数据库操作,使得开发者可以更加专注于业务逻辑,而不是底层的数据存取细节。本篇将详细探讨“Hibernate插入数据”的相关知识点,结合学习心得,深入...
而在Java持久化框架Hibernate中,这些数据类型需要与数据库中的字段类型进行映射,以便正确地存储和检索数据。这篇博客主要探讨了Java数据类型如何与Hibernate的类型映射进行对应。 首先,Java的基本数据类型在...
### JSP Hibernate 数据保存操作的原理 #### 一、概述 在Java开发中,Hibernate作为一款流行的ORM(Object-Relational Mapping)框架,为开发者提供了高效便捷的方式将Java对象映射到关系型数据库中的表,并支持对...
**Hibernate for NetBeans 数据操作方法** Hibernate 是一个流行的开源对象关系映射(ORM)框架,它简化了Java应用程序与数据库之间的交互。NetBeans 是一款强大的集成开发环境(IDE),提供了丰富的功能来支持...
在Java Hibernate3中,添加和删除数据是通过持久化类和配置文件实现的,无需直接编写SQL语句。以下是关于这个主题的详细说明。 首先,我们需要了解Hibernate3的基本概念。Hibernate提供了一个API,允许开发者将Java...
在Java的持久化框架Hibernate中,实体关联是其核心特性之一,它允许我们在数据库中建立对象之间的关系,以便更好地模拟真实世界的数据模型。本教程“传智播客hibernate教程_保存多对一关联关系的更进一步分析”深入...
在本篇文章中,我们将深入探讨JSP中使用Hibernate进行数据保存操作的原理,特别是`session.save()`方法的工作机制。 当我们在JSP页面或者相关的Java后端代码中调用`session.save()`方法时,Hibernate并不会立即执行...
### Hibernate的映射、三态、脏数据、Session缓存详解 #### 一、Hibernate映射 **Hibernate映射**是Hibernate框架的核心功能之一,它实现了Java对象与数据库表之间的映射关系。通过这种方式,开发人员可以使用面向...