php cdi_CDI中的事务异常处理
php cdi
在Java EE中,在执行事务性业务方法期间引发的异常导致事务回滚。 但是,只有系统异常(即运行时异常)才是这种情况,该方法异常未在方法签名中声明。
对于应用程序异常(即检查的异常)或任何带@ApplicationException
注释的异常,不会自动回滚事务。 有时这会引起企业开发人员的困惑。
对于EJB业务方法,还可以通过指定@ApplicationException(rollback = true)
来强制事务回退应用程序异常。 但是,仅当EJB中的托管bean时才考虑使用此注释。
CDI还可以使用@Transactional
事务上执行业务方法。 此注释使我们拥有更多控制权。 使用@Transactional
我们不仅可以定义事务类型,例如REQUIRED
或REQUIRES_NEW
,而且可以定义我们要回滚或不希望回滚的异常类型:
public class CarManufacturer {@InjectCarFactory carFactory;@InjectEvent<CarCreated> createdCars;@PersistenceContextEntityManager entityManager;@Transactional(rollbackOn = CarCreationException.class,dontRollbackOn = NotificationException.class)public Car manufactureCar(Specification specification) {Car car = carFactory.createCar(specification);entityManager.persist(car);createdCars.fire(new CarCreated(car.getIdentification()));return car;}}
CarCreationException
发生CarCreationException
,事务将被回滚,但不是NotificationException
。
翻译自: https://www.javacodegeeks.com/2018/01/transactional-exception-handling-cdi.html
php cdi
php cdi_CDI中的事务异常处理相关推荐
- CDI中的事务异常处理
在Java EE中,在执行事务性业务方法期间引发的异常导致事务回滚. 但是,只有系统异常(即运行时异常)才是这种情况,该方法异常未在方法签名中声明. 对于应用程序异常(即检查的异常)或任何带@Appl ...
- springboot事务回滚源码_Spring Boot中的事务是如何实现的
1. 概述 一直在用SpringBoot中的@Transactional来做事务管理,但是很少想过SpringBoot是如何实现事务管理的,今天从源码入手,看看@Transactional是如何实现事 ...
- springboot 事务手动回滚_Spring Boot中的事务是如何实现的
1. 概述 一直在用SpringBoot中的@Transactional来做事务管理,但是很少想过SpringBoot是如何实现事务管理的,今天从源码入手,看看@Transactional是如何实现事 ...
- python切面异常处理_Spring项目中优雅的异常处理
Spring项目中优雅的异常处理 前言 如今的Java Web项目多是以 MVC 模式构建的,通常我们都是将 Service 层的异常统一的抛出,包括自定义异常和一些意外出现的异常,以便进行事务回滚, ...
- springboot 事务_Spring Boot中的事务是如何实现的?懂吗?
一个SpringBoot问题就干趴下了?我却凭着这份PDF文档吊打面试官. 金三银四第一天,啃透这些SpringBoot知识点,还怕干不赢面试官? Spring全家桶笔记:Spring+Spring ...
- Spring中的事务控制
Chapter 1. Spring中的事务控制(Transacion Management with Spring) Table of Contents 1.1. 有关事务(Transaction)的 ...
- Spring中的事务控制(Transacion Management with Spring)
1.1. 有关事务(Transaction)的楔子 1.1.1. 认识事务本身1.1.2. 初识事务家族成员 1.2. 群雄逐鹿下的Java事务管理 1.2.1. Java平台的局部事务支持1.2.2 ...
- Spring中的事务控制学习中(转)
1.1. 有关事务(Transaction)的楔子 1.1.1. 认识事务本身 1.1.2. 初识事务家族成员 1.2. 群雄逐鹿下的Java事务管理 1.2.1. Java平台的局部事务支持 1.2 ...
- Spring中的事务控制学习中
Chapter 1. Spring中的事务控制(Transacion Management with Spring) Table of Contents 事务管理(Transaction Manage ...
最新文章
- JUnit基础及第一个单元测试实例(JUnit3.8)
- 程序员11月书讯 | 硅谷,梦开始的地方
- snort2安装及卸载教程
- InSAR 处理软件
- webservice xsd.exe根据xml生成xsd。然后根据xsd生成java bean
- 可能是全网首个前端源码共读活动,诚邀你加入一起学习
- Effective C++学习第十天
- 关闭dhcp服务器无线用不了怎么办,路由器关闭dhcp之后无法上网怎么办?
- Codeforces Round #666 (Div. 2)D. Stoned Game(博弈问题)
- Python学习总结(九)正则表达式
- Linux 》编译器gcc/g++,调试器gdb
- 老男孩教育50期学员
- BDE Administrator 在 Windows 7/10 保存无响应卡死
- win7下用VS编译SBA(摄影测量光束法平差程序库)
- win10总显示打印机未连接服务器,win10安装打印机一直未响应。。。
- 课后作业——Day6
- myeclipse下载git插件
- 电池串联均衡电路Simulink仿真
- 暗通道去雾算法代码实现(1) python
- 个人对于“初链”白皮书和黄皮书的解读
热门文章
- [指数型生成函数专练]chocolate,红色病毒问题,排列组合,字串数
- P4026-[SHOI2008]循环的债务【dp】
- jzoj3682-Points and Segments【模型转化,欧拉回路】
- P3690-[模板]Link Cut Tree(动态树)【Splay】
- P5283-[十二省联考2019]异或粽子【可持久化Trie,堆】
- jzoj1758-过河【dp】
- ssl提高组周六模拟赛【2019.3.2】
- P3891-[GDOI2014]采集资源【背包,dp】
- codeforces1493 D. GCD of an Array(数论)
- 秀姿势(jzoj 3464)