`

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对象状态以及各种保存方法的区别

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

    hibernate保存blob,clob对象

    NULL 博文链接:https://sxpujs.iteye.com/blog/368960

    精通 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:对象持久化技术孙卫琴第二版part2

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

    Hibernate持久化对象的生命周期

    Hibernate持久化对象的生命周期 持久化对象的状态: 瞬时对象(Transient Objects)持久化对象(Persist Objects)、离线对象(Detached ...在Hibernate应用中Java对象的状态 Session的保存、更新、删除、查询方法:

    仿hibernate动态生成sql保存对象

    反射对象生成sql,保存对象。 里面还差,存储过程、批量操作、动态sql 还差一个配套的工具(根据数据库字段生成对象)

    精通Hibernate:对象持久化技术第二版part3

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

    hibernate的各种保存方式的区别以及hibernate对象的三种状态[定义].pdf

    hibernate的各种保存方式的区别以及hibernate对象的三种状态[定义].pdf

    hibernate父亲与孩子

    hibernate面向对象树型结果开放实例

    hibernate简介及优缺点

    持久态:用session的相关方法将瞬时态对象保存到数据库中与数据库相关联的对象 3.脱管态:将持久态对象所关联的session关闭后,该持久态对象即变为脱管态对象 二.ORM:ORM是对象到关系的映射(Object Relational ...

    Hibernate笔记 马士兵

    第9课 Hibernate的重点学习:Hibernate的对象关系映射 12 一、对象---关系映射模式 12 二、常用的O/R映射框架: 13 第10课 模拟Hibernate原理(OR模拟) 13 一、 项目名称 13 二、 原代码 13 第11课 Hibernate基础配置...

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

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

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

    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实体对象继承的方法  hibernate继承策略总共有三种,一种是共用一张表;一种是每个类一张表,表里面储存子类的信息和父类的信息;还有一种是通过表连接的方式,每个类都有一张表,但是子类对应的表只保存...

    Hibernate入门技术

    这是关于SSH框架的技术,主要是关于Hibernate如何保存对象到数据表

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

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

    Hibernate+中文文档

    10.1. Hibernate对象状态(object states) 10.2. 使对象持久化 10.3. 装载对象 10.4. 查询 10.4.1. 执行查询 10.4.2. 过滤集合 10.4.3. 条件查询(Criteria queries) 10.4.4. 使用原生SQL的查询 10.5. 修改...

Global site tag (gtag.js) - Google Analytics