- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
在我的项目中使用 Wildfly 10、java 8、mysql、camel 和 hibernate
methodKO 持久化实体 orderEntity("ko"),调用 methodOK 并进入异常; methodOK 持久化实体 orderEntity("ok")
尽管methodKO中出现异常,但我想在db中找到orderEntity("ok"),所以我用@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)注释了methodOK但这不起作用
这里是配置文件的详细信息:
独立-full-ha.xml:
<datasources>
<xa-datasource jndi-name="java:jboss/datasources/myDS" pool-name="myDS" enabled="true" use-ccm="true">
....
</datasources>
持久性.xml:
<persistence-unit name="camel" transaction-type="JTA">
<jta-data-source>java:jboss/datasources/myDS</jta-data-source>
....
MyBean:
@Stateless
public class MyBean {
@Inject
OrderDAO orderDAO;
private void methodKO() throws Exception {
orderDAO.create(new orderEntity("ko"));
methodOK();
throw new Exception("err");
}
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
private void methodOK() {
orderDAO.create(new orderEntity("ok"));
}
}
最佳答案
根据 EJB 3.1:
A transaction attribute is a value associated with each of thefollowing methods:
a) a method of a bean’s business interface
b) a method exposed through thebean class no-interface view
这意味着私有(private)方法上的任何事务注释都是无用的。
我将这两个方法定义为public:
@Stateless
public class MyBean {
@Inject
OrderDAO orderDAO;
public void methodKO() throws Exception {
orderDAO.create(new orderEntity("ko"));
methodOK();
throw new Exception("err");
}
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
public void methodOK() {
orderDAO.create(new orderEntity("ok"));
}
}
这个 bean 实现一个实际上包含这两个方法的接口(interface)是一个很好的做法。
关于java - 野蝇 - @TransactionAttribute -,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42379378/
我在我的项目中使用 EcllipseLink 2.5。@TransactionAttribute 的默认值是必需的。如果我们将SessionBean定义为TransactionManagementTy
在我的项目中使用 Wildfly 10、java 8、mysql、camel 和 hibernate methodKO 持久化实体 orderEntity("ko"),调用 methodOK 并进入异
我需要在 glassfish3.0 上使用 JPA 2.0 和 EJB3.0 删除忽略任何完整性约束的员工列表(即成功删除尚未与任何其他实体相关的实体或跳过与其他实体相关的实体) : 我迭代列表并在
我测试了我的 ejb jpa 事务。我使用容器管理的 entityManager: @PersistenceContext(unitName = "ParticularUnit") EntityMan
我正在测试应用程序中试验 CDI。我有一个 DAO,它注入(inject)一个容器管理的 JTA 持久性上下文,如下所示: public class TestDAO implements Serial
我开始进行持久性编码,并且遇到了诸如 @Transactional 和 @TransactionAttribute 之类的注释。我了解这两个注释的基本功能,并且它们可以在类级别和方法级别使用。我想更好
我遇到了两个单独事务的问题,它们以与实际执行顺序相反的顺序刷新到数据库。 这是业务案例:存在 RemoteJob-RemoteJobEvent 一对多关系。每创建一个新的事件,都会获取一个时间戳,并设
名为 Aby 的 EJB 方法调用另一个名为 Bob 的 EJB 方法Bob标有 @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW
我有一个方法 Meth1,女巫会从另一个类调用 Meth2。我希望如果 Meth1 失败,则不执行 Meth2。 它们都有 REQUIRED 属性。使用此代码,如果 Meth1 在持久化过程中失败(M
查看此链接: When does @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW) commit? B怎么可能是正确答案呢?我认
我有包含以下代码的 OwnerService 类: public RegisterOwnerResult registerOwner(RegisterOwnerRequest request) {
我遇到了一个奇怪的 EJB 事务属性问题。 @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW) 没有按预期启动新事务。 我将 EJ
您能否在不需要事务的方法中调用需要事务的方法? @TransactionAttribute(value = TransactionAttributeType.NEVER) public void Do
我说的对吗,@TransactionManagement(TransactionManagementType.BEAN) 与 SessionBean 上的任何 @TransactionAttribut
我了解容器管理事务(CMT)。我也知道different possible values枚举类型TransactionAttributeType。由于客户端从不直接调用 MDB,因此除了 REQUIR
我正在使用 mdb-jms。我创建了一个具有 2 个方法的 EJB 无状态类。(i) 方法 insertInput() 被注释为 @TransactionAttribute(TransactionAt
我的 EJB3.1 bean 初始化遇到困难,更具体地说,由于感知到的事务回滚而导致它失败,即使我已经用 @TransactionAttribute(NOT_SUPPORTED) 标记了 bean .
我是一名优秀的程序员,十分优秀!