`
抛出异常的爱
  • 浏览: 628039 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

session的基本操作(hibernate)

阅读更多
近日重读Hibernate文档,整理一下思路,发现几个方法没有用过,顺便和大家讨论下 。
session的基本操作有:
persist():
这个操作我以前从没见过,更没有用过,好像是跟save差不多吧?Doc文件上说当级联风格为persist时,这个操作会级联操作关联的对象。这个方法的语义是JSR-220定义的。但具体的与Save的区别却不是很清楚,有知道的不吝赐教,呵呵
save():
这个大家都很熟悉了,首先会赋予一个标志符,然后持久化给定的对象。但是如果使用assigned 标志符产生方法,则会使用当前的标志符值。如果级联风格为save-update,则会持久化相应的关联对象
merge()
拷贝当前的对象的状态到相同标志符的持久化对象的状态。如果当前关联的session中没有持久化对象,Hibernate会加载该对象,并返回这个持久化对象。如果给定的对象没有保存,则Hibernate保存该副本,返回这个新持久化的对象,但给定的对象并没有和session关联。如果指定级联风格为merge,则会级联关联对象。该方法的语义是JSR-200定义的。
saveOrUpdate()
这个也用的很多吧,保存或更新给定对象,取决于给定对象的持久化状态。默认情况下是保存,在指定标志符元素属性为unsaved-value时则会调整。如果级联风格为"save-update",则会级联相关联的对象

delete(),
不说了。

lock(),
用的不多呵呵,但不知大家用过多少。用于对指定对象设置参数中给定的锁。如果锁为LockMode.READ,可以用来执行版本检查;如果锁为LockMode.UPGRADE则用来执行悲观锁。如果指定为LockMode.NONE,则仅仅时持久化一个未持久化的对象。如果级联风格为lock,会级联相关联的对象。
refresh(),
用的不是很多。 从当前数据库中重新读取给定对象的状态。这在执行跨越多个业务任务的长时间session中优势不显著,在少数特定环境下还是有用的,例如:
插入或更新后数据库触发器更改了对象的状态。
当前session中执行完原生SQL后(如批量更新)。
插入Blob或Clob对象后
evict(),
用过几次,但不是很多。从session的缓存中去除当前实例。执行后对象的改变将不再和数据库保持同步。。当指定级联风格为'evict’时,会级联操作关联对象。我用的时候主要是用于批量操作的时候,清空缓存,防止内存紧张。
Persist the state of the given detached instance, reusing the current identifier value. This operation cascades to associated instances if the association is mapped with cascade="replicate"
replicate()
重用当前的标志符,持久化当前已经脱离session的对象的状态。具体的操作和要看参数ReplicationMode。如果是ReplicationMode.EXCEPTION,则在复制时如果有重复的行数据,则抛出异常。ReplicationMode.IGNORE则忽略异常。ReplicationMode.OVERWRITE则会覆盖掉已有行数据。ReplicationMode.LATEST_VERSION则是在有重复时使用最新的版本进行控制。
分享到:
评论

相关推荐

    重写hibernate的session简单增删改查

    在Java的持久化框架中,Hibernate是一个非常流行的ORM(对象关系...总的来说,通过这个实践教程,初学者可以深入理解Hibernate的Session工作原理,学习如何自定义Session以适应项目需求,同时掌握基本的数据库操作。

    对Hibernate Session做一个简单的包装

    `Session`是Hibernate的核心组件,它负责对象的持久化操作,如保存、更新、查询等。 `Session`接口提供了多种方法来与数据库交互,如`save()`, `update()`, `delete()`, `get()`, `load()`以及`createQuery()`等。...

    hibernate环境搭建基本操作封装

    本文将详细介绍如何进行Hibernate环境搭建,以及如何进行基本操作的封装,我们将以MySQL开源数据库作为数据存储后端。 一、Hibernate环境搭建 1. **安装MySQL数据库**: 首先,你需要在本地或者服务器上安装MySQL...

    Hibernate基本增删改CRUD操作

    **Hibernate基本增删改CRUD操作** 在Java开发中,Hibernate是一个非常流行的持久化框架,它简化了数据库操作,使得开发者无需直接编写SQL语句,就能实现对象与关系数据库之间的映射。本教程将深入讲解如何使用...

    hibernate操作

    在实际开发中,可能还需要实现事务管理、错误处理等高级功能,但这已经涵盖了Hibernate基本操作的流程。通过这种方式,你可以轻松地在MyEclipse中使用Hibernate来管理数据库操作,简化开发过程。

    hibernate基本jar包

    总的来说,这个"hibernate基本jar包"为Java开发者提供了完整的Hibernate ORM框架,能够高效、便捷地进行数据库操作,提高开发效率。不过,需要注意的是,随着Java和Hibernate版本的更新,这些库文件可能会有所变化,...

    Hibernate操作数据库的方法

    (5)查询数据库的基本操作。查询可以通过 Criteria API 或 HQL(Hibernate Query Language)进行。以下是一个简单的 Criteria 查询示例: //取得 SessionFactory 实例SessionFactory sessionFactory = ...

    hibernate数据库通用SQL代码

    总结,以上代码展示了如何利用Hibernate框架编写通用的数据库操作,包括增、删、改、查四种基本操作。这些方法可以广泛应用于任何基于Hibernate的Java项目中,提高了代码的复用性和开发效率。同时,它们也体现了...

    JAVA的hibernate手动获取session的方法

    以下是如何手动获取Session的基本步骤: 1. **配置Hibernate**:在项目的资源目录下创建`hibernate.cfg.xml`配置文件,定义数据库连接信息,包括URL、用户名、密码、驱动类等。例如: ```xml <hibernate-...

    Hibernate基本配置演示

    **Hibernate基本配置演示** 在Java开发中,Hibernate是一款强大的对象关系映射(ORM)框架,它简化了数据库操作,使得开发者能够用Java对象来处理数据。这篇教程将深入讲解Hibernate的基本配置过程,确保你能顺利...

    hibernate基础jar包

    6. Session和Transaction:在Hibernate中,Session是数据库会话的代表,负责对象的持久化操作;Transaction则封装了数据库事务,确保数据操作的一致性和完整性。 7. HQL和Criteria API:Hibernate Query Language...

    hibernate 简单CRUD操作

    CRUD是创建(Create)、读取(Read)、更新(Update)和删除(Delete)的首字母缩写,是数据库管理的基本操作。在Hibernate中,我们可以便捷地进行这些操作。 1. **创建(Create)** - 在Hibernate中,我们首先...

    hibernate基本功能

    本篇文章主要介绍利用Hibernate框架来实现基本的功能操作,包括登录验证、查询、增加、修改以及删除等常用操作。 #### 二、知识点详解 ##### 1. 登录验证功能实现 登录验证是许多应用中的一个常见需求。在`...

    hibernate框架基本包

    这个“hibernate框架基本包”包含了一系列必要的库文件,使得开发者能够轻松地将数据库操作与业务逻辑集成,从而减少对SQL的直接依赖。这个包与相关的博客内容配合,提供了学习Hibernate的完整资源。 **1. ...

    hibernate单表基本操作实例

    在这个“hibernate单表基本操作实例”中,我们将深入探讨如何使用Hibernate对单一数据库表进行基本的操作,如增、删、改、查。 首先,我们需要了解Hibernate的核心概念。ORM允许我们通过面向对象的方式来处理数据库...

    hibernate入门实例操作步骤

    **hibernate入门实例操作步骤** Hibernate是一款强大的Java对象关系映射(ORM)框架,它...熟悉这些基本操作后,就可以进一步学习更高级的Hibernate特性,如懒加载、缓存、事务管理等,以提升开发效率和应用程序性能。

    在hibernate中的数据库操作

    ### 在Hibernate中的数据库操作 ...特别地,`save`、`get`、`load` 和 `delete` 方法是进行基本 CRUD 操作的基础,而理解它们之间的差异能够帮助开发人员更高效地利用 Hibernate 来处理数据库交互。

    hibernate第一个hibernate

    《Hibernate入门:初识与实践》 ...总之,"hibernate第一个hibernate"项目是一个绝佳的起点,它将引导你了解并掌握Hibernate的基本概念和操作。通过实践,你可以逐步熟悉ORM思想,为后续的Java开发奠定坚实的基础。

Global site tag (gtag.js) - Google Analytics