@Transactional和@TransactionAttribute的区别

9

我开始进行持久性编码,并遇到了像@Transactional@TransactionAttribute这样的注释。我理解这两个注释的基本功能,也知道它们可以在类级别和方法级别上使用。我想更好地了解这两个注释之间的区别。任何帮助都将不胜感激。谢谢。

2个回答

12

@TransactionAttribute 是为 EJB3 bean 设计的。

@Transactional 是为 POJO(例如 Seam、Spring/Hibernate)设计的。


"@Transactional"。现在也适用于EJB。"https://docs.oracle.com/javaee/7/api/javax/transaction/Transactional.html" - Arash
我理解@Transactional只能与EJB一起使用,且仅适用于bean管理的事务模式,而不适用于容器管理的事务模式。这正确吗? - Alexey Usharovski

1
  • @TransactionAttribute 是用于 EJB bean 的。
  • @Transactional 是用于 CDI bean 的。

不,@Transactional 不应该用于注释 EJB 业务方法。虽然 Java Docs 建议可以用于 EJB,但 EJB 规范建议目前不要用于 EJB。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接