`
isky
  • 浏览: 92045 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

Hibernate数据保存——Session.save

阅读更多
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. 最好,如果存在级连关系,对级连关系进行递归处理。
4
3
分享到:
评论

相关推荐

    hibernate-release-5.0.6.Final.zip(最新Hibernate架包)

    9. **查询语言HQL**:Hibernate提供了自己的查询语言——Hibernate Query Language(HQL),它是面向对象的,类似于SQL,但操作的是对象而不是表格。此外,Hibernate还支持 Criteria 查询和JPQL(Java Persistence ...

    hibernate-release-5.4.18.Final.zip

    《Hibernate ORM框架详解——以hibernate-release-5.4.18.Final为例》 Hibernate,作为Java领域中的一款主流对象关系映射(ORM)框架,极大地简化了数据库操作,使得开发者可以专注于业务逻辑而无需过多关注底层SQL...

    Hibernate总结——课程管理

    创建新的学生或课程对象,设置相关属性,然后调用`Session.save()`方法将其保存到数据库。 2. **读取(Read)** 使用`Session.get()`或`Session.load()`根据主键获取对象,或者使用`Session.createQuery()`或`...

    Hibernate 4——Hello World

    使用`Session`对象的`save()`或`saveOrUpdate()`方法来保存实体到数据库: ```java Session session = sessionFactory.openSession(); Transaction tx = session.beginTransaction(); User user = new User("John ...

    Hibernate使用——入门

    **Hibernate使用——入门** Hibernate 是一个强大的开源对象关系映射(ORM)框架,它简化了Java应用程序与数据库之间的交互。这篇博文将引导你入门Hibernate,理解其基本概念和使用方法。 **1. Hibernate概述** ...

    struts2+hibernate整合例子——新闻管理系统

    3. 打开事务,执行Session的save()或persist()方法,将News对象保存到数据库。 4. 提交事务,关闭Session。 对于模糊查找功能,Struts2 Action会接收用户输入的关键词,然后构造HQL(Hibernate Query Language)...

    hibernate-min-lib.rar

    《Hibernate框架精简版——深入理解与应用》 Hibernate,作为一个强大的对象关系映射(ORM)框架,极大地简化了Java开发者在数据库操作上的工作。"hibernate-min-lib.rar" 提供了一个精简版的Hibernate库,包含了...

    Hibernate(session管理)

    本文将深入探讨Hibernate中的核心概念——Session管理。 首先,理解Session在Hibernate中的角色至关重要。Session是Hibernate的主要工作单元,它是应用程序与数据库之间的桥梁。它负责保存、检索和更新Java对象,...

    hibernate code.rar

    保存数据时,我们可以调用Session的`save()`或`persist()`方法。例如,创建一个新的`User`对象并保存到数据库: ```java Session session = sessionFactory.openSession(); Transaction transaction = session....

    JAVA的hibernate手动获取session的方法

    首先,理解Hibernate的核心组件——Session。Session是Hibernate中的工作单元,它是与数据库交互的主要接口,负责保存、更新和删除对象,同时提供查询功能。在Java应用中,我们需要先初始化SessionFactory,然后通过...

    hibernate-release-4.1.5.SP1

    在Hibernate 4.1.5.SP1中,这个框架已经相当成熟,支持多种数据库平台,包括MySQL、Oracle、PostgreSQL等,并且具备强大的查询语言——HQL(Hibernate Query Language)。 二、主要特性 1. **对象关系映射(ORM)**...

    hibernate.zip

    10. **缓存机制**: Hibernate支持一级缓存(Session级别的)和二级缓存(SessionFactory级别的),可以提高数据访问效率,但需注意缓存一致性问题。 以上就是Hibernate的基本知识点和核心功能,通过这些概念和方法...

    实现自己的Hibernate框架之Session 方法实现

    首先,我们需要了解Hibernate的核心概念——Session。在Hibernate中,Session是与数据库交互的主要接口,它负责对象的持久化、查询以及事务管理。Session的方法包括保存、更新、删除、加载、查询等,这些都是ORM框架...

    附件Hibernate程序

    实体类的实例可以通过Hibernate的Session接口进行持久化操作,如保存(`save()`或`saveOrUpdate()`)、更新(`update()`)、删除(`delete()`)和查询(`get()`、`load()`或`query()`)。 `HibernateBegin_1`可能是...

    Hibernate5.0-4天学习笔记.rar

    首先,我们需要了解Hibernate的核心组件——SessionFactory和Session,它们是Hibernate工作流程中的关键。SessionFactory是线程安全的,负责创建Session实例,而Session则是与数据库进行交互的接口。接下来,我们...

    Hibernate笔记完整版

    对象持久化是将内存中的数据保存在永久存储介质——数据库中,以防止断电或网络传输时数据丢失。主要有以下原因促使我们进行数据持久化:内存的临时性,数据传输的限制,数据组织和查询的不便,以及内存容量的限制。...

    hibernate简单实例

    本教程将引导您进入Java世界中的ORM(对象关系映射)框架——Hibernate。Hibernate是一个强大的工具,它允许开发者通过Java对象与数据库中的表进行交互,无需编写大量的SQL代码,极大地提高了开发效率。在这个简单的...

    hibernate入门实例封装了HibernateUtil

    在这个hibernate入门实例中,我们将学习如何创建并使用HibernateUtil工具类,该类包含`save`和`get`方法,分别用于执行数据的保存和查询。 首先,我们需要在项目中配置Hibernate的相关文件,包括hibernate.cfg.xml...

    hibernate资料

    接下来,我们将详细探讨Hibernate的核心配置文件——`hibernate.cfg.xml`。这个配置文件是Hibernate与数据库进行交互的基础,其中包含了数据库连接的相关信息。例如,`driver_class`属性定义了数据库的驱动类,`url`...

    Hibernate存储图片

    根据提供的信息来看,实际内容与所需生成的知识点——“Hibernate存储图片”的配置方法存在较大偏差。但是,基于题目要求,我们将围绕“Hibernate存储图片”这一主题展开详细论述,并结合给出的部分内容来尽可能地...

Global site tag (gtag.js) - Google Analytics