解决Hibernate的session.save/update/delete操作无效问题(事务管理)
来源:互联网 发布:淘宝最畅销类目排行榜 编辑:程序博客网 时间:2024/05/16 14:47
近期开始玩Hibernate了,因为之前开发用的都是Mybatis,刚开始用Hibernate发现了许多问题。
其中一个问题就是session.save/update/delete无效的问题。
导致这个问题最可能的原因是未开启事务。
Hibernate的增删改操作都是要提交才能生效的,当我们执行session.save(obj)操作后,其实并没有提交。
有两种解决方案
一、开启事务管理
1.在代码中开启事务管理(不推荐)
session.beginTransaction();session.save(user);session.getTransaction().commit();2.在业务逻辑层以注解@Transcational的方式来管理事务(推荐)
@Transactionalpublic void soSomeThing(){//一系列数据持久化操作}
这种方式是使用了面向切面的编程思想,是一般工程项目的主要做法,对代码的侵入性小。
二、如果是以非事务的方式开始执行持久化操作,执行session.close()即可提交操作到数据库。注意,这种方法只在save()操作下有效,在update/delete下还是会失效,update和delete操作需要把new的带有唯一标识符(id)的对象从transient状态转换到persistent状态。
阅读全文
0 0
- 解决Hibernate的session.save/update/delete操作无效问题(事务管理)
- hibernate session 的save,get,update,delete 方法
- Hibernate中getHibernateTemplate()下的update、delete、save操作
- hibernate的save、update、delete原理
- Hibernate Session中的save(),update(),delete(),saveOrUpdate() 细粒度分析
- Hibernate的Session接口中save/delete/update方法2个参数(entityName)的深入解析
- hibernate的saveorUpdate与unsaved-value,save,update,delete总结
- datanucleus+spring 的JDO操作 select save update delete
- Hibernate的save,delete使用方法(七)
- Spring 使用Hibernate事务管理:update等操作无效果问题
- Hibernate Set Cascade Example (save, update, delete and delete-orphan)
- hibernate update和delete方法无效
- 解决link_to 中delete无效的问题
- Hibernate深入理解----03Session缓存核心方法(save()和persist(),get()和load(),update()和saveOrUpdate,delete()和evil()
- jaxp dom 的 update/delete /save
- 初学hibernate,调用session的save方法不起作用的解决
- hibernate delete update 失效问题
- hibernate delete update 失效问题
- 7-函数参数的扩展
- Java的初步使用
- 顺序表实现简单学生信息管理
- 如何给打开 PHPStudy 的 ldap 模块
- php使用redis-数据类型为字符串类型(String)
- 解决Hibernate的session.save/update/delete操作无效问题(事务管理)
- 浅谈C/C++数组取地址
- BZOJ3884 上帝与集合的正确用法
- thymeleaf中的fragment使用
- 周志华机器学习读后总结 第14、15、16章
- ajax异步上传文件
- Zabbix自动发现之fping
- 迟延履行催告合理期是多久
- Android 6.0 动态权限申请管理 用户拒绝不再提示后再申请