将@Transactional与EJB结合使用

iku*_*iku 3 ejb java-ee cdi

@Transactional与EJB 结合使用是否可以?使用@TransactionAttribute之间有什么区别吗?

我在这里找到了@Transactional和@TransactionAttribute之间的区别 @Transactional用于POJO.我在Wildfly中意外地将它用于EJB,并且没有错误.我想知道行为是否相同或者是否存在一些差异.或者@Transactional可能会被忽略,并且会使用@TransactionAttribute的默认级别?我在规范中搜索但没有发现任何帮助.

编辑:

正如@kostja所说,不清楚提到的框架问题是什么.我的意思是来自CDI的@Transactional,而不是Spring.

Bre*_*ail 5

根据EJB 3.2规范的第7.1节:

将JTA事务拦截器(参见[8])与Enterprise JavaBeans关联是非法的.EJB容器应该无法部署此类应用程序.[39]

[39]此限制可能会在本规范的未来版本中删除.

从容器实现的角度来看,CDI和EJB在不同的层运行(CDI代理包装EJB代理).为了使这项工作很好,需要在两个容器之间进行更深入的集成,以便@Transactional拦截器和EJB容器都不会尝试检查/更新事务上下文.