`

Hibernate保存对象

阅读更多

        要实现一个简单的功能,通过Hibernate来向mysql数据库中插入一条记录,即要将一个对象持久化到数据库中。通过查阅发现Hibernate的Session对象有个save()方法可以解决上面的需求。

public void add(Music music) {
		Session session = sessionFactory.openSession();
		try {
			session.save(music);
		} finally {
			session.close();
		}
	}

 调用这个方法时,Hibernate没有报任何异常,也没有打印SQL语句,数据库里没有增加记录,尝试了几次数据库依旧没有增加任何记录。后来通过查阅资料发现需要增加一条语句

session.flush();

 但是当通过HQL语句进行更新数据操作的时候不需要调用session.flush()方法就可以提交

	public void update(Music music) {
		Session session = sessionFactory.openSession();
		try {
			session
					.createQuery(
							"update Music as music set music.name=:name where music.id=:id  ")
					.setParameter("name", music.getName())
					.setParameter("id", music.getId()).executeUpdate();
		} finally {
			session.close();
		}
	}

 因为只是更新部分字段的值,所以采用了HQL语句这样的方式,使用session.update()方法是更新整个对象除了Id的所有属性值,使用update()和save()一样需要flush()方法来提交更新数据操作。

 

分享到:
评论

相关推荐

    hibernate保存blob,clob对象

    以上就是关于在Hibernate中保存Blob和Clob对象的基本操作。在实际项目中,还需要考虑性能优化、错误处理等问题,例如使用流式处理减少内存占用,以及适当地配置Hibernate的缓存策略等。了解并熟练掌握这些技巧,能...

    Hibernate对象状态以及各种保存方法的区别

    以下是 Hibernate 中对象的三种状态以及相关的保存方法: 1. **瞬时对象(Transient Objects)** - 当使用 `new` 关键字创建一个对象时,它处于瞬时状态。这种状态的对象与数据库中的任何记录没有关联,只存在于...

    hibernate保存不到数据1

    标题中的"hibernate保存不到数据1"是一个关于Hibernate框架在尝试保存数据到数据库时遇到问题的场景。描述提到了一个具体的解决方案,即通过在`hibernate.cfg.xml`配置文件中设置`connection.autocommit`属性为`true...

    精通Hibernate:Java对象持久化详解.zip

    在Java开发中,持久化是将应用程序中的对象状态保存到持久存储介质(如数据库)的过程。Hibernate通过提供一种对象-关系映射机制,使得Java对象可以直接与数据库表进行交互,而无需编写大量的SQL语句。这种映射机制...

    Hibernate 操纵持久化对象

    1. **创建(Save/SaveOrUpdate)**:将Java对象保存到数据库,使得对象成为持久化状态。 2. **加载(Load/Get)**:根据主键从数据库中获取对象,使对象变为持久化状态。 3. **更新(Update)**:当对象状态发生变化...

    仿hibernate动态生成sql保存对象

    本文将深入探讨如何模仿Hibernate的功能,动态生成SQL来保存对象,以及与之相关的技术如注解(Annotation)和数据库字段映射。 首先,让我们了解一下Hibernate的核心功能:对象持久化。Hibernate允许开发者将Java...

    hibernate保存图片

    这部分涉及到将图片文件转换为Blob对象,然后使用Hibernate保存到数据库中。 ```java public class HibernateTest extends TestCase { private Session session; private Transaction transaction; @Override ...

    Hibernate中对象的三种状态

    它们没有持久化标识(ID),在Hibernate的眼里,这些对象就像普通的Java对象,如果程序结束或者对象引用丢失,这些对象就会被垃圾回收器清除,数据不会保存到数据库中。在Hibernate中,通过`new`关键字创建的对象...

    精通Hibernate:Java对象持久化技术详解

    2. **Session接口**:它是Hibernate的主要工作接口,负责对象的加载、保存、更新和删除等操作,提供了事务管理和缓存机制。 3. **Criteria查询**:提供了一种动态构建SQL查询的方式,无需编写硬编码的SQL语句,增强...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

    6.3 Hibernate用对象标识符(OID)来区分对象 6.4 Hibernate的内置标识符生成器的用法  6.4.1 increment标识符生成器  6.4.2 identity标识符生成器  6.4.3 sequence标识符生成器  6.4.4 hilo标识符生成器  ...

    Hibernate实体对象操纵

    **Hibernate实体对象操纵** 在Java开发中,Hibernate是一款非常重要的对象关系映射(ORM)框架,它极大地简化了数据库操作,使得开发者可以使用面向对象的方式来处理数据库数据。本篇文章将深入探讨Hibernate中的...

    Hibernate持久化对象的生命周期

    例如,如果一个持久化对象包含一个临时对象,并且配置了级联保存,那么在Session清理时,这个临时对象也会被保存到数据库并变为持久化。 总的来说,理解Hibernate中持久化对象的生命周期是优化数据库操作的关键,它...

    Hibernate下数据批量处理解决方案

    在上述例子中,当尝试向数据库插入100,000条数据时,由于默认情况下Hibernate会将所有持久化对象保留在一级缓存中,随着数据量的增加,内存消耗也会迅速增长,最终导致内存溢出。因此,我们需要对一级缓存进行管理。...

    精通hibernate:对象持久化技术孙卫琴第二版part2

    本章还将介绍通过Hibernate API来保存、修改和删除具有关联关系的对象的方法。 7.1 建立多对一的单向关联关系 148 7.1.1 [many-to-one]元素的not-null属性 153 7.1.2 级联保存和更新 155 7.2 映射一对多双向关联...

    hibernate对象三种状态

    在Java的持久化框架Hibernate中,对象存在三种不同的状态,分别是持久态(Persistent)、自由态(Transient)和游离态(Detached)。这三种状态分别对应了对象与数据库的关联程度,理解它们对于高效地使用Hibernate...

    Hibernate 对象持久化

    通过Hibernate,我们可以轻松地将对象从内存中保存到数据库,或者从数据库中加载到内存。 **三、Hibernate配置** 使用Hibernate,首先需要配置hibernate.cfg.xml文件,其中包含数据库连接信息、方言、缓存设置等。...

Global site tag (gtag.js) - Google Analytics