hibernet事务问题

问题描述

service层开启了事务,当事务中有用到find查询的时候,事务被提交了有何配置可设置此种情况否 问题补充:声明:1,采用的是spring管理事务 2,事务被正常切上将flushmode 改成了commit已经解决了我上述问题新问题:采用的hibernate session中 excudeUpdate方法执行修改与删除确不在事务中,被自动提交了

解决方案

看不懂你的在不使用spring的情况下hibernate事物是硬编码也就是setAutoCommit(boolean) 设置是否自动提交事务,默认自动提交设置事物级别 隔离机制commit() 提交事务rollback() 撤销事务通常如果你只查询的话是不需要事物的 看不懂你的什么find后提交了事物你根本没持久化任何数据,要事物有何用?能回滚吗?如果你是save或update的话设置setAutoCommit(false)后 你所有的修改操作都将保存在hibernate一级缓存 修改数据后使用rollback() 数据就不会真正更新到持久层推荐你是用spring事物管理 通过xml或注解都比直接是用hibernate好N倍而且spring事物还支持传播机制 就算你一个请求下来走了N个方法 修改了N个数据 他们都还是在一个事物内 出现异常都能回滚
解决方案二:
service层开启了事务,当事务中有用到find查询的时候,事务被提交了 有何配置可设置此种情况否1、事务切面根本没切上2、用法不对 贴相关代码3、如果用mysql 且MyIASM引擎 无事务
解决方案三:
find查询数据,不需要提交事务吧。事务隔离级别没配置对。
解决方案四:
我错了 脑袋一抽忘了些东西 别误导你了 hibernate一级缓存是用来跑批的 当缓存中存在一定数据的语句时会一次性提交 而事物是由数据库支持的 大多数的数据库都支持事物 有一些专门定位在高速度的不要求时时同步数据的数据库才没有事物
解决方案五:
先把该做的查询查好了,再做增删改
解决方案六:
expression="(execution(* com.acca.service.*.save*(..)) || execution(* com.acca.service.*.update*(..)) || execution(* com.acca.service.*.delete*(..))) and not execution(* com.acca.service.*find*(..))" />

时间: 2024-09-17 13:22:55

hibernet事务问题的相关文章

spring 多数据源 ,mybatis和hibernet版本

mybatis版本 1.数据源配置: jdbc_multiple.properties: # MySQL #============================================================================ jdbc.mysql.driver=com.mysql.jdbc.Driver jdbc.mysql.url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncodi

事务隔离级别小记

事务的四个属性:原子性(atomicity).一致性(consistency).隔离性(isolation)和持久性(durability). 1.原子性(Atomic)     最重要的原则,也是最容易理解的原则.被事务管理的所有方法,要么一起被提交,要么一起回滚. 2.一致性(Consistency)     事务在系统完整性中实施一致性,如果事务成功地完成,那么系统中所有变化将正确地应用,系统处于新有效状态.如果在事务中出现错误,那么系统中的所有变化将自动地回滚,系统返回到原始状态. 3.

GTS for DRDS分布式事务的实现理解

GTS介绍 全局事务服务(Global Transaction Service,简称 GTS)是一款高性能.高可靠.接入简单的分布式事务中间件,用于解决分布式环境下的数据一致性问题. 一个完整的业务往往需要调用多个子业务或服务,随着业务的不断增多,涉及的服务及数据也越来越多,越来越复杂.传统的系统难以支撑,出现了应用和数据库等的分布式系统.分布式系统又带来了数据一致性的问题,从而产生了分布式事务. 分布式事务是指事务发起者.资源管理器.事务协调者及资源分别位于不同的分布式系统的不同节点之上. G

破解世界性技术难题! GTS让分布式事务简单高效

近日,2017云栖大会·深圳峰会如期举行,多项阿里云新产品对外发布.在企业级互联网架构分会场,来自阿里中间件(Aliware)的技术专家及合作伙伴,为现场参会嘉宾带来最新的传统IT架构到企业级互联网架构跨越式升级.实现互联网转型的产品及解决方案.其中高级技术专家姜宇在分享中带来的Aliware新产品-全局事务服务(Global Transaction Service ,简称GTS),在分布式事务处理上带来的高性能和技术创新令到场参会的各路技术专家眼前一亮. Aliware新成员-全局事务服务GT

java 连接异常-java 启动jdbc 事务报错 嵌套异常

问题描述 java 启动jdbc 事务报错 嵌套异常 org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: Error querying database. Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC

java-银行交易如何实现类似事务回滚

问题描述 银行交易如何实现类似事务回滚 在做的项目中,有一个基金产品的购买交易,里面的大致逻辑是 先判断用户是否基金开户,未开户发交易开基金账户>是否签约***(具体什么省略) 未签约发交易签约>最后一步发交易购买该款基金产品. 但现在的问题是购买失败则一个java类里的前两个交易都给做了现在,想不出什么类似操作数据库的事务回滚机制才控制这段交易,该交易在一个页面完成.望经验丰富的朋友给个思路,谢谢! 解决方案 你可以使用应用层的事务框架,或者自己实现一个简单的:先将操作放入临时的表中,然后一

mysql dba系统学习(22)数据库事务详解

上个星期去面试数据库管理员的工作,笔试通过之后就是直接的面试,他问了我一个问题,叫我介绍哈数据库的事务的看法和理解,但是不知所错的没有章法的乱答一气,唉唉,基础不扎实啊. 下面来好好的学习哈mysqlinnodb引擎的事务相关的知识 一,我们为什么需要数据库事务呢? 这个问题看似很简单,但是真的能够说明白还是要看看我们的基本功是不是扎实 例如,用户A给用户B通过ATM机转账1000元,那么A账户上就会少1000元,而B用户会多1000元 在这个过程中,两个环节是关联的.第一个账户划出款项必须保证

RocksDB事务实现TransactionDB分析

基本概念 1. LSN (log sequence number) RocksDB中的每一条记录(KeyValue)都有一个LogSequenceNumber(后面统称lsn),从最初的0开始,每次写入加1.该值为逻辑量,区别于InnoDB的lsn为redo log物理写入字节量. 这个lsn在RocksDB内部的memtable中是单调递增的,在WriteAheadLog(WAL)中以WriteBatch为单位递增(count(batch.records)为单位). WriteBatch是一次

数据库事务浅析

数据库为什么要有事务,因为,事务是数据库区别于文件系统的特性之一.在文件系统中,如果你正在对2个文件进行修改,一个更新成功,另外一个在更新之前系统崩溃了,那么这就会有2个不同步的文件. 数据库中事务的基本作用就是将数据库从一种一致性状态转变为另外一种一致性状态. 数据库事务有4个特征(acid): 1.原子性(atomicity):事务中的所有动作要么都发生,要么都不发生. 2.一致性(consistency):事务将数据库状态从一种一致状态转变为下一种一致状态. 3.隔离性(isolation