org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has
来源:互联网 发布:log4j打开sql执行日志 编辑:程序博客网 时间:2024/04/29 22:39
ERROR: org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has been marked as rollback-only
- @Transactional
- public void foo() {
- try{
- bar();
- } catch (RuntimeException re) {
- // caught but not throw further
- }
- }
- @Transactional
- public void bar() {
- }
如果foo在调用bar的时候,bar抛出RuntimeException,Spring在bar return时将Transactional标记为Rollback only, 而foo捕获了bar的RuntimeException,所以Spring将会commit foo的事务,但是foo和bar使用的是同一事务,因此在commit foo事务时,将会抛出UnexpectedRollbackException。注意:如果foo和bar在同一class中,不会出现这种情况,因为:
Since this mechanism is based on proxies, only 'external' method calls coming in through the proxy will be intercepted. This means that 'self-invocation', i.e. a method within the target object calling some other method of the target object, won't lead to an actual transaction at runtime even if the invoked method is marked with @Transactional!
可以通过配置log4j来debug Spring事务获取情况:
To delve more into it I would turn up your log4j logging to debug and also look at what ExerciseModuleController is doing at line 91, e.g.: add a logger for org.springframework.transaction
0 0
- org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has
- org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has
- org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has
- org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has
- org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has
- UnexpectedRollbackException: Transaction rolled back because it has been mar
- UnexpectedRollbackException: Transaction rolled back because it has been marked as rollback-only
- Transaction has been rolled back because it has been marked as rollback
- Transaction has been rolled back because it has been marked as rollback .
- Transaction rolled back because it has been marked as rollback-only
- spring事务 Transaction rolled back because it has been marked as rollback-only
- Transaction rolled back because it has been marked as rollback-only
- Transaction rolled back because it has been marked as rollback-only
- Transaction rolled back because it has been marked as rollback-only
- Transaction rolled back because it has been marked as rollback-only
- Transaction rolled back because it has been marked as rollback-only
- Transaction rolled back because it has been marked as rollback only
- Transaction rolled back because it has been marked as rollback-only”
- 爱别人和爱自己同在
- android webview js alert对话框 不能弹出 解决办法
- 百度UEditor编辑器ueditor.setContent总是报错
- 给UIAlertView添加手势使点击区域外弹框消失
- 取消Eclipse的Error Reporting
- org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has
- 说说渗透测试
- error C2039: 'm_dwVersion' : is not a member of 'AFX_MODULE_STATE'
- 关于viewWithTag的使用
- java解析XML的三种方法
- 《大话数据结构》之图的深度优先遍历
- Android使用Unicode码对中文进行字母索引的2种方法
- UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现
- TextToSpeech笔记