在我的公司中,不鼓励使用
Spring框架,而是推广
Java EE 6.但是最近我在
Using @Transactional读到了关于Springs @Transactional注释的内容,并认为这对我们的代码非常有用.
据我所知,使用@Transactional注释的方法将重用已存在的事务,或者在调用该方法时如果不存在活动事务则打开新事务. Java EE 6中是否有类似的东西(例如类似的注释)?
解决方法
EJB组件在Java EE中具有此事务控制.您可以将EJB上方法的事务设置为required,RequiresNew,Supports等.您几乎总是使用无状态会话Bean(@Stateless)来满足您描述的要求:
> @TransactionAttribute(value=[MANDATORY,> required,REQUIRES_NEW,SUPPORTS,> NOT_SUPPORTED,NEVER]
默认情况下,必需将重新使用现有txn(如果有正在运行)或创建新txn(如果没有). Java EE 6附带EJB 3.1,因此您甚至不需要业务接口,并且可以根据需要将EJB打包在WAR文件中.因此,您正在使用EJB,但如果您想要的只是JTA支持,那么对于开发人员来说,它们更容易集成.
对于EJB注释,这是一个useful cheat sheet,如果你是谷歌的话,有很多指南.