php cdi_CDI中的事务异常处理

php cdi

在Java EE中,在执行事务性业务方法期间引发的异常导致事务回滚。 但是,只有系统异常(即运行时异常)才是这种情况,该方法异常未在方法签名中声明。

对于应用程序异常(即检查的异常)或任何带@ApplicationException注释的异常,不会自动回滚事务。 有时这会引起企业开发人员的困惑。

对于EJB业务方法,还可以通过指定@ApplicationException(rollback = true)来强制事务回退应用程序异常。 但是,仅当EJB中的托管bean时才考虑使用此注释。

CDI还可以使用@Transactional事务上执行业务方法。 此注释使我们拥有更多控制权。 使用@Transactional我们不仅可以定义事务类型,例如REQUIREDREQUIRES_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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/334343.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

opencv 把3通道图像转成单通道_小强学Python+OpenCV之-1.4.3图像(矩阵)加减运算

引入问题引入&#xff0c;考虑以下几个问题&#xff1a;Q1. 一个3通道像素p的BGR分量&#xff08;8bit表示&#xff09;值均相同&#xff0c;那么这个像素是什么颜色的&#xff1f;Q2. 该像素p加上自己&#xff0c;即&#xff0c;像素p的各个通道值翻倍&#xff0c;那么这个像素…

Linux(CentOS 7.x) 下如何设置 nginx 开机启动?

CentOS 7 以上是用 Systemd 进行系统初始化的&#xff0c;Systemd 是 Linux 系统中最新的初始化系统&#xff0c;Systemd 服务文件以 .service 结尾。 使用命令 yum 安装 nginx 如果用 yum install 命令安装 nginx&#xff0c;yum 命令会自动在目录 /usr/lib/systemd/system …

mvc 404错误 php,java - springmvc 请求无法到达controller,出现404错误

springmvc 请求无法到达controller&#xff0c;出现404错误web.xmltestmvcindex.htmlindex.htmindex.jspdefault.htmldefault.htmdefault.jspspringmvcorg.springframework.web.servlet.DispatcherServletcontextConfigLocationclasspath:springmvc-servlet.xml1springmvc/org.…

jdk 1.8 不可变常量_在JDK 10中不可变与不可修改

jdk 1.8 不可变常量大约两个月前&#xff0c; 斯图尔特马克斯 &#xff08; Stuart Marks&#xff09;写道&#xff1a;“ 不变性就像葡萄酒 。” 然后&#xff0c;他提醒读者注意叔本华的熵定律 &#xff1a;“如果将一勺酒倒入装满污水的桶中&#xff0c;就会产生污水。 如果…

diff算法_传统Diff算法为什么时间复杂度要O(n ^3)

原文链接&#xff1a;https://juejin.im/post/6892671384976097287很多文章提到的都是新旧DOM树需要两两对比&#xff0c;但是没有说清楚为什么。思考大家想一下&#xff0c;如果让你来设计将一棵树转换为另一棵树&#xff0c;你会怎么设计&#xff1f;可能是直接暴力的根据ind…

CentOS 7 Linux 的初始化系统(系统服务管理和控制程序/Init System) -- systemd 详解

文章目录一、systemd 的由来&#xff08;一&#xff09;常用的 init 系统&#xff08;二&#xff09;init 程序的缺点&#xff08;三&#xff09;systemd 简介&#xff08;四&#xff09;systemd 架构图二、服务管理三、unit 配置文件&#xff08;一&#xff09;概述&#xff0…

python 指针指向的内容,python-文件的读取及指针位置

文件的读取及指针位置打开文件的三步&#xff1a;打开->操作->关闭文件的读取&#xff1a;f open(/tmp/passwd)打开f.close()操作完&#xff0c;关闭文件判断文件对象拥有的权限print(f.readable())是否拥有可读权限True or Falshprint(f.writable())是否拥有可写权限文…

jax-rs jax-ws_对状态代码使用JAX-RS异常

jax-rs jax-ws从JAX-RS资源发送特定HTTP&#xff08;错误&#xff09;状态代码的一种方法是使用javax.ws.rs.core.Response类及其类似Builder Pattern的API。 如果要根据响应主体指定返回类型&#xff0c;则仍然可以这样做&#xff0c;并通过抛出WebApplicationException针对错…

Linux 及其它类 Unix 系统的系统服务管理和控制程序(初始化系统/init system)简单梳理

文章目录一、Linux 的启动过程二、初始化程序&#xff08;一&#xff09;System V init&#xff08;二&#xff09;Upstart init&#xff08;三&#xff09;systemd&#xff08;四&#xff09;Launchd&#xff08;五&#xff09;Epoch&#xff08;六&#xff09;Mudar一、Linux…

matplotlib 柱状图_Matplotlib数据可视化:柱状图与直方图

↑↑点击上方蓝字&#xff0c;回复资料&#xff0c;嘿嘿&#xff0c;10个G的惊喜柱状图和直方图是两种非常类似的统计图&#xff0c;区别在于&#xff1a;直方图展示数据的分布&#xff0c;柱状图比较数据的大小。直方图X轴为定量数据&#xff0c;柱状图X轴为分类数据。因此&am…

php怎样完成批量审核,CMS_DedeCMS 批量取消审核文档的实现方法,今天修改了几个地方的代码 实 - phpStudy...

今天修改了几个地方的代码 实现了在原来dede文章批量管理的地方 添加一个 “取消审核” 如下图&#xff1a;实现方法&#xff1a;修改管理目录(默认为dede)下的文件&#xff1a;archives_do.php 插入以下代码(位置随意 可以放审核文档下面 方便记忆)&#xff1a;复制代码代码如…

groovy.run 脚本_Picocli 2.0:类固醇上的Groovy脚本

groovy.run 脚本Picocli 2.0增加了对其他JVM语言&#xff08;尤其是Groovy&#xff09;的支持。 当Groovy语言具有CliBuilder类的内置CLI支持时&#xff0c;为什么还要使用picocli&#xff1f; 您可能喜欢picocli的使用帮助&#xff0c;默认情况下会显示ANSI 颜色和样式 。 您…

Linux 系统服务管理和控制程序(初始化系统/Init System) -- systemd 介绍

文章目录systemd 简介systemd 启动过程概述Systemd的争议systemd 简介 开发systemd的主要目的就是减少系统引导时间和计算开销。systemd&#xff08;系统管理守护进程&#xff09;&#xff0c;最开始以GNU GPL协议授权开发&#xff0c;现在已转为使用GNU LGPL协议&#xff0c;…

mongodb msi安装包_跟我快速学数据存储:MongoDB非关系型数据库

想要学习更多编程&#xff0c;就点上方蓝字关注我们MongoDB概述01与Redis半持久化&#xff0c;存储于内存和硬盘不同&#xff0c;MongoDB是直接持久化&#xff0c;存储于硬盘的缓存系统。MongoDB非常流行&#xff0c;其中阿里云提供了云数据库MongoDB版。https://blog.csdn.net…

php页面 info,通过PATH_INFO方法实现页面伪静态_php

/*函数url_parse用于解析url&#xff0c;使用时需要在前面定义define(PATH_INFO,true);需要解析时调用该函数&#xff0c;取值方法用回$_GET[xxx]即可*/function url_parse(){if(!(isset($_SERVER[PATH_INFO])&&defined(PATH_INFO))){return;}$url substr($_SERVER[PA…

767 重构字符串_重构字符串型系统

767 重构字符串去年&#xff0c;我加入了一个项目&#xff0c;该项目从另一个软件公司接手&#xff0c;但未能满足客户需求。 如您所知&#xff0c;在“继承”的项目及其代码库中&#xff0c;有许多事情可以并且应该加以改进。 可悲的是&#xff08;但并不奇怪&#xff09;领域…

fanuc roboguide_FANUC机器人虚拟仿真教程:Roboguide弧焊仿真工作站工装添加

Roboguide软件左侧浏览树中的“Fixture”节点专门用于添加工装资源&#xff0c;软件支持添加自带的库文件数模以及外部导入的CAD数模。软件支持CSB、DXF、STL、IGES、3DS等格式数模文件&#xff0c;一般情况下将将外部数模转换为IGES或CSB格式后进行导入效果会更好一些。本期&a…

如何在 Ubuntu 14.04 和 12.04 上测试 systemd

本来&#xff0c;Ubuntu决定从Ubuntu 16.04 LTS开始使用systemd来替换当前的引导过程。Ubuntu 16.04预计在2016年4月发布&#xff0c;但是考虑到systemd的流行和需求&#xff0c;刚刚发布的Ubuntu 15.04采用它作为默认引导程序。另外&#xff0c;Ubuntu 14.04 Trusty Tahr和Ubu…

oracle怎么读取表空间文件大小,oracle获取表空间文件大小

oracle通过查询DBA_SEGMENTS表获取表空间文件信息&#xff0c;包括表空间名称&#xff0c;大小等 ? 1 select tablespace_name,sum(max_size),sum(bytes) from dba_segments group by tablespace_name; max_size和bytes的单位是字节。将上面的sql语句放到存储过程中执行&#…

java 枚举内嵌枚举_高度有用的Java ChronoUnit枚举

java 枚举内嵌枚举几年前&#xff0c;我发表了博客文章“ The Highly有用的Java TimeUnit Enum ”&#xff0c;其中介绍了JDK 5引入的TimeUnit枚举。 JDK 8引入了一个更新的枚举ChronoUnit &#xff0c;它比TimeUnit更适合于并发以外的上下文&#xff08;例如日期/时间操作&…