java - 是否有类似于 Java EE 6 中可用的 Springs @Transactional 注释的东西?

标签 java spring transactions java-ee-6

在我的公司,不鼓励使用 Spring 框架,而是提倡使用 Java EE 6。但最近我在 Using @Transactional 阅读了有关 Springs @Transactional 注释的信息。并认为这对我们的代码非常有用。

据我所知,使用 @Transactional 注释的方法将重用一个已经存在的事务,或者如果在调用该方法时不存在 Activity 事务则打开一个新事务。 Java EE 6 中是否有类似的东西(例如,类似的注释)可用?

最佳答案

EJB 组件在 Java EE 中具有这种事务控制。您可以将 EJB 上方法的事务设置为 Required、RequiresNew、Supports 等。您几乎总是使用无状态 session Bean (@Stateless) 来满足您描述的需求:

> @TransactionAttribute(value=[MANDATORY,
> REQUIRED, REQUIRES_NEW, SUPPORTS,
> NOT_SUPPORTED, NEVER]

必需的,默认的,如果有一个正在运行的,将重新使用现有的 txn,如果没有,则创建一个新的。 Java EE 6 附带 EJB 3.1,因此您甚至不需要业务接口(interface),如果需要,您可以将 EJB 打包到 WAR 文件中。因此,您使用的是 EJB,但对于开发人员而言,如果您只需要 JTA 支持,那么集成它们要容易得多。

这是一个 useful cheat sheet用于 EJB 注释,如果您在 Google 上搜索它们,可以找到许多指南。

关于java - 是否有类似于 Java EE 6 中可用的 Springs @Transactional 注释的东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6424289/

相关文章:

postgresql - 如何防止 Postgres 中的幻读?

java - 在 for 循环声明中初始化的变量的范围实际上不仅仅是 block 范围吗?

spring - 默认情况下,Spring 的 DispatcherServlet 是否对 HttpSession 的超时有任何影响?

java - 事务需要异常 JPA/Spring

MySQL如何正确使用事务?

java - 如何在子句行为中自定义 NamedParameterJdbcTemplate?

java - 如何克服 "double cannot be dereferenced"?

java - 使用 jUnit 测试每个开关/外壳

java - Spring数据Mongodb检索数据: @Document VO returns null

java - Spring RestTemplate 接收 sun.security.validator.ValidatorException : PKIX path building failed: