`

hibernate update 更新学习(转)

阅读更多
update方法用于更新数据库内容。在hibernate API中的解释是可以把一个Detached状态的对象更新成Persistent对象。而通过实验发现,只要是有Id的对象(数据库有相应记录,包括手动指定id的Transient对象)都可以使用update方法进行更新。而对于Persistent对象来说,只要重新设置了对像的属性值,再Session提交的时候就会自动更新(隐式的调用update方法?)。关于更新。hibernate在Session flush的时候会和数据库进行比较。如果Session缓存中数据和数据库里的不一致就会发出Sql语句进行更新。

  注意到不论是使用update方法还是hibernate自动更新的时候,发出的sql语句都是把整个表的所有字段都更新一遍。这样在有的情况下(有某个字段存的数据比较大)效率会比较低。自然就想到要是能改动了那个字段就更新那个字段就好了。实现这个功能的方法有3个:1、在xml中配置property的update属性,对应在annotation中设置@column的updatable。(不灵活)2、在xml中设置dynamic-update。但是在annotation中没有对应的设置。可以使用merge()方法。3、使用hql语句来更新(实用的方法)。
分享到:
评论

相关推荐

    hibernate学习资料大全

    Hibernate提供了CRUD(Create, Read, Update, Delete)操作,通过save()、get()、update()、delete()等方法,可以方便地进行数据的增删改查。此外,还有Criteria API和HQL(Hibernate Query Language)用于复杂查询...

    hibernate4框架学习笔记

    【hibernate4框架学习笔记】 Hibernate是一款强大的ORM(Object-Relational Mapping)框架,它在Java开发中扮演着至关重要的角色,通过提供对象与数据库之间的映射,解决了对象模型和关系模型之间的“阻抗不匹配”...

    Hibernate学习文档集合

    《Hibernate学习文档集合》 Hibernate,作为Java领域中的一款强大且广泛应用的对象关系映射(ORM)框架,极大地简化了数据库操作。本集合包含了三个关键的学习文档,分别关注于Hibernate的操作基础、对象关系映射和...

    Hibernate3.3_学习笔记.doc.zip

    比如,使用save()或saveOrUpdate()保存对象,load()或get()获取对象,update()更新对象,delete()删除对象。此外,还可以使用Criteria、HQL(Hibernate查询语言)进行复杂查询。 六、一对多、多对一、多对多关系...

    hibernate学习总结文档

    3. **更新(Update)**:修改对象后,调用 `update()` 或 `merge()` 方法同步数据库。 4. **删除(Delete)**:`delete()` 方法用于从数据库中移除对象。 **查询机制** - **HQL(Hibernate Query Language)**:...

    hibernate学习文档

    4. Hibernate的CRUD操作,理解如何保存、查询、更新和删除数据。 5. Hibernate的查询机制,包括HQL和Criteria API的使用。 6. Hibernate的缓存机制,了解第一级缓存和第二级缓存的概念及应用场景。 7. Hibernate的...

    hibernate-代码学习示例

    【hibernate-代码学习示例】是一个关于Hibernate框架的实战教程,主要针对开发者提供深入理解和使用Hibernate的实例。Hibernate是Java开发中的一个流行对象关系映射(ORM)框架,它简化了数据库操作,使开发者可以更...

    hibernate学习笔记,学习大纲【吐血推荐】

    **Hibernate学习笔记与大纲** Hibernate 是一款开源的Java语言下的对象关系映射(ORM)框架,它极大地简化了数据库操作,使得开发人员可以使用面向对象的方式处理数据,而无需过多关注底层的SQL语句。本笔记将深入...

    Hibernate基础学习源码

    2. **Hibernate_02**: 在这个阶段,开发者可能学习了如何在Hibernate中使用Session接口进行数据操作,比如保存(save()或persist())、更新(update())、删除(delete())和加载(get()或load())对象。此外,还...

    hibernate入门学习笔记+源码

    5. **CRUD操作**: 插入(save()或saveOrUpdate())、更新(update())、查询(load()、get()、Criteria、HQL等)、删除(delete())。 6. **事务处理**: Hibernate支持自动和手动的事务管理,确保数据的一致性。 **...

    hibernate学习心得

    对于初学者来说,学习 Hibernate 可以简化数据库操作,提高开发效率。以下是对 Hibernate 学习过程的详细说明: 一、配置 Hibernate 与 MyEclipse 连接 在开始使用 Hibernate 之前,你需要先配置 Hibernate 与...

    hibernate和session学习

    1. `save()` 和 `update()`: `save()`用于将新对象持久化到数据库,如果对象已经存在,可以使用`update()`来更新其状态。 2. `delete()`: 删除指定的对象,将其从数据库中移除。 3. `get()` 和 `load()`: `get()`...

    hibernate学习笔记第二天的源码

    在学习笔记中,开发者可能会展示如何进行基本的Create、Read、Update、Delete(CRUD)操作。例如,创建一个新的对象并保存到数据库,从数据库读取对象,更新对象属性后再次保存,以及删除对象。这些操作都是通过`...

    hibernate学习笔记

    `update()`方法中,首先开启事务,执行更新操作(如`session.update(userinfo)`),然后提交事务,如果发生错误则回滚。 9. **SessionFactory**: `HibernateSessionFactory`通常是一个工厂类,负责提供`Session`...

    jdbc和hibernate学习内容

    学习Hibernate,你需要掌握: 1. **配置Hibernate**:包括配置hibernate.cfg.xml文件,定义数据源、SessionFactory等。 2. **实体类和映射文件**:创建Java类表示数据库表,并通过Hibernate的XML映射文件或注解...

    hibernate框架实例

    通过Session的open()方法建立连接,save()、update()、delete()方法进行CRUD操作,而find()和load()方法用于查询。 6. **Criteria查询**:除了编写SQL语句外,Hibernate还提供了Criteria API,通过构建查询条件对象...

Global site tag (gtag.js) - Google Analytics