0 0

hibernate中update方法的一点疑惑10

事实上hibernate的update方法并不只是sql中update的翻版。它的思想本意是将脱管的对象重新塞进session中受管。从文档提到的场景简单说来就是第一个请求将数据load给页面表单,然后修改,接着页面保存后,将对象放回session,再会触发sql update,而且还是一个全字段的update,这使得出现一个大家都觉得尴尬的场景,就是必须要保证这个对象未修改的字段是存在并且是原值。因此在使用updae时通常要先load一下,但这样就失去updae的本意。本意的场景是我第一次都提供给你的字段,当然还给我的时候都要在。
但是,页面表单真不一定每个字段都要展示啊。。。。若是加隐藏域就显得怪怪的。

大家谈谈自己的看法。


问题补充:发现还说错了一点,先load以后就无需调用update了。。。
2014年8月09日 01:47

1个答案 按时间排序 按投票排序

0 0

一般都是先load全部字段,再设置要更新的字段,再更新所有字段,如果Hibernate只更新几个字段,也要查数据库,一个个字段作比较,很麻烦的。

2014年8月09日 08:59

相关推荐

    Hibernate update问题

    然而,如果对象不在Session缓存中,`update()`方法可能会失效,因为Hibernate无法跟踪对象的状态变化。 2. **持久化状态与 detached 状态** 在Hibernate中,对象有四种状态:瞬时、持久化、托管和detached。当你...

    使用hibernate封装方法

    标题“使用Hibernate封装方法”暗示我们将讨论如何在项目中通过封装Hibernate操作,以提高代码的复用性和可读性。通常,我们会在DAO(数据访问对象)层进行这些封装,将数据库的CRUD(创建、读取、更新、删除)操作...

    Hibernate merge、update与saveOrUpdate方法的区别

    在Hibernate框架中,`merge`、`update`与`saveOrUpdate`这三个方法都是用于更新或保存实体对象到数据库中的,但它们之间存在着重要的区别,这些区别主要体现在对实体状态的处理方式上。 #### 1. `merge` 方法 `...

    hibernatetools-Update-4.1.1.Final_2013-12-08_01-06-33-B605.zip

    《Eclipse中Hibernate插件深度解析》 在Java开发领域,Hibernate作为一种强大的对象关系映射(ORM)框架,极大地简化了数据库操作。而Eclipse作为主流的Java集成开发环境,其丰富的插件生态使得开发效率得以提升。...

    Hibernate持久层方法汇总

    本文将详细介绍Hibernate持久层中的一些核心方法,包括`session.load`, `session.find`, `session.iterator`, `session.save`, `session.update`, `session.saveorupdate`。 1. `session.load()`: - `load()`方法...

    hibernatetools-Update-4.1.1.Final_2013-12-08_01-06-33-B605

    尽管具体更新日志未在提供的信息中列出,但通常这样的版本升级会针对之前版本存在的问题进行改进,增强用户体验,并保持与最新Hibernate框架的兼容性。 2. **核心功能介绍:** - **可视化ORM设计**:开发者可以...

    hibernatetools-Update-4.1.1.zip

    《Hibernate Tools 4.1.1:提升数据库与对象映射的效率》 Hibernate Tools是Hibernate框架的一个扩展,它提供了一系列实用工具,帮助开发者更高效地进行对象关系映射(ORM)工作。这次我们关注的是版本4.1.1,这个...

    hibernate操纵实体对象

    2. **更新(Update)**:如果对象已经存在于数据库中,可以使用`update()`方法来更新其状态。同样,更新操作也是在事务提交时执行。 3. **删除(Delete)**:`delete()`方法用于从数据库中移除一个对象。在调用此...

    Hibernate更新某些字段

    在 Hibernate 中, update 方法可以更新整个对象的所有字段。如果我们直接使用 Session.update(Object o) 方法,Hibernate 会生成一个更新所有字段的 SQL 语句。这可能会导致性能问题,特别是当某些字段类型是文本...

    Hibernate方法总结

    在Java持久化框架Hibernate中,HibernateTemplate是一个便捷的工具类,它封装了常见的数据库操作,使得开发者能够更方便地与数据库交互。以下是对标题和描述中提到的HibernateTemplate方法的详细总结: A. `get` 和...

    hibernate中文文档 HTML格式

    在“Hibernate中文文档 HTML格式”中,这些概念和使用方法都将以易于理解的方式呈现,适合初学者和有经验的开发者参考学习。通过阅读这份文档,你将能够深入理解Hibernate的工作原理,并学会如何在实际项目中有效...

    hibernate常用方法集合

    让我们详细了解一下`HibernateSessionFactory`类中的关键方法和其背后的原理。 1. **配置和初始化SessionFactory** `HibernateSessionFactory`类通过`cfg.configure(CONFIG_FILE_LOCATION)`来读取配置文件(默认为...

    Netbeans 配置 hibernate 的方法

    在更新中心中,选择“NBXDoclet Update Center”,然后选择“Hibernate”插件,并添加到 Netbeans 中。安装完成后,重启 Netbeans。 配置 Hibernate 安装完成后,需要配置 Hibernate。在 Netbeans 中,选择“文件...

    Hibernate中文Api最新参考文档

    例如,使用`save()`或`saveOrUpdate()`方法保存实体,`load()`或`get()`方法获取实体,`update()`或`merge()`更新实体,以及`delete()`方法删除实体。 事务处理是数据库操作的重要部分,Hibernate通过`Transaction`...

    hibernate中文帮助文档

    5. **CRUD操作**: Hibernate提供了便捷的方法进行创建(Create)、读取(Retrieve)、更新(Update)和删除/Delete)操作,如`save()`, `load()`, `update()`, `delete()`等。 6. **HQL与QBC**: Hibernate查询语言(HQL)...

    Hibernate基本数据操作方法

    Hibernate基本数据操作方法 java struts hibernate

    Hibernate中的DAO模式

    然后在Hibernate的DAO类中,定义一个方法,如`getUsersByPage(int startIndex, int pageSize)`,在这个方法内部,使用`createSQLQuery()`调用存储过程,并将结果转换为Java对象列表。 ```java public List<User> ...

    spring hibernate整合的底层数据操作方法

    1. 增加(Insert):在Hibernate中,我们可以通过Session的`save()`或`saveOrUpdate()`方法来保存新对象到数据库。在Spring整合中,通常会在Service层调用DAO层的方法,如`userRepository.save(user)`。 2. 删除...

    hibernate执行原生sql语句

    在上面的代码中,我们使用 `HibernateCallback` 接口来执行原生 SQL 语句,该接口提供了一个 `doInHibernate()` 方法,该方法将在 Hibernate 事务中执行。我们可以在该方法中执行原生 SQL 语句,并使用 `Connection`...

    hibernate_reference中文版和Hibernate中文手册

    5. CRUD操作:Hibernate提供了便捷的方法来完成创建(save()、persist())、读取(get()、load()、query())、更新(update()、merge())和删除(delete())对象的操作。其中,HQL(Hibernate Query Language)和...

Global site tag (gtag.js) - Google Analytics