Transactional ejb 事务陷阱
对应ejb,默认是对整个类使用事务。所以所有方法都开启事务。
而对于用TransactionAttribute注释来引用容器管理的事务,只能在第一级的方法中使用。对应类中的方法再调用其它类中方法,注释事务就不起作用了。
代码示例如下:
在一个没有事务的类中调用:
@TransactionAttribute(javax.ejb.TransactionAttributeType.NEVER)
@Stateless
public class MyTask{
@Inject Task t;
t.doTask();
}
@TransactionAttribute(javax.ejb.TransactionAttributeType.NEVER)
@Stateless
public class Task {
public void doTask(){
job();
}
@TransactionAttribute(javax.ejb.TransactionAttributeType.REQUIRED)
public void job(){
//db insert operation ....
}
}
这个调用将会抛出:
ERROR [org.jboss.as.ejb3.invocation] (Batch Thread - 9) WFLYEJB0034: EJB Invocation failed on component PeekCompute for method public void com.italktv.colnv.stat.task.PeekCompute.start(java.lang.String): javax.ejb.EJBException: javax.persistence.TransactionRequiredException: Executing an update/delete query
at org.jboss.as.ejb3.tx.CMTTxInterceptor.handleExceptionInNoTx(CMTTxInterceptor.java:213)
但是,如果MyTask里面直接调用 t.job(),那么是成功的。
转载于:https://www.cnblogs.com/bigben0123/p/7133339.html
Transactional ejb 事务陷阱相关推荐
- 事务策略: 了解事务陷阱--转
在 Java 平台中实现事务时要注意的常见错误 在应用程序中使用事务常常是为了维护高度的数据完整性和一致性.如果不关心数据的质量,就不必使用事务.毕竟,Java 平台中的事务支持会降低性能,引发锁定问 ...
- spring@Transactional注解事务不回滚不起作用无效的问题处理
这几天在项目里面发现我使用@Transactional注解事务之后,抛了异常居然不回滚.后来终于找到了原因. 如果你也出现了这种情况,可以从下面开始排查. 一.特性 先来了解一下@Transactio ...
- @Transactional注解事务不回滚不起作用无效
@Transactional注解事务不回滚不起作用无效 以下内容均来自http://blog.csdn.net/u011410529/article/details/54287307 转载 这几天在项 ...
- Transactional(事务)
Transactional(事务) 1.依赖 <dependency><groupId>org.springframework.boot</groupId&g ...
- [转载]权衡 Apache Geronimo EJB 事务选项,第 3 部分: 综合所有事务
权衡 Apache Geronimo EJB 事务选项,第 3 部分: 综合所有事务 Jonathan Sagorin 在 由三部分组成的系列文章 的最后一部分中对 Enterprise Java™B ...
- 从@Transactional看事务的传播和隔离
文章目录 1. transactionManager 当在配置文件中有多个TransactionManager,可以用该属性指定使用哪个事务管理器 2. 事务的传播行为(propagation) ,默 ...
- Spring注解之@Transactional对于事务异常的处理
spring对于事务异常的处理 unchecked 运行期Exception spring默认会进行事务回滚 比如:RuntimeException checked 用 ...
- Spring @transactional annotation 事务使用详解
来源:http://www.yihaomen.com/article/java/412.htm annotation 方式写程序越来越称谓主流了,以前用hibernate 也用 xml 一大堆配置文件 ...
- @Transactional子事务单独提交
需求是在添加了事务的service方法内,执行一个单独事务的添加方法,service报错等导致数据回滚时,单独事务的方法不回滚. 单独提交方法需要放在不用的服务类里,使用Transactional的p ...
最新文章
- JavaScript--'data-'的用法(1)
- php正则判断不规范字符串,php学习_第9章_字符串处理与正则表达式
- Android 最火的高速开发框架xUtils
- 【caffe解读】 caffe从数学公式到代码实现1-导论
- Eclipse is running in a JRE, but a JDK is required错误的解决
- Codeforces Round #636 (Div. 3) F. Restore the Permutation by Sorted Segments 思维 + 暴力
- .vue文件_Spring Boot 2.x(十六):玩转vue文件上传
- 教你一个快速视频处理的神器:Python moviepy
- python使用级数pi的近似值_JavaScript与Python计算pi的近似值运行时间对比
- mysql like BR%._MySQL Like子句
- 给你自己的博客加个 Markdown
- 笔记本电脑小键盘上有 home、pgup、pgdn、如何使用
- s5p6818 Smart6818 nanopi3开发板,uboot启动linux,配置nfs文件系统,设置bootargs
- 解决KEIL MDK编译生成Bin文件时,却生成了*bin文件夹
- 报错:xxx.foreach is not a function
- 回顾过去。。展望未来
- 2018年人均寿命是多少_那是2018年
- centos7升级GLIBC版本
- gil 简述_求职面试常见问题:Python常见面试题全解析附答案
- Android特效专辑(十二)——仿支付宝咻一咻功能实现波纹扩散特效,精细小巧的View