我一直在寻找这方面的综合文章,但还没有找到足够好的文章。
有人可以向我解释交易类型的工作原理吗? (Required、RequiresNew、Mandatory、Never...)以及这些主要是如何影响不同类型的服务之间的服务调用?
最佳答案
Bill Burke 和 Richard Monson Haefel 编写的 Enterprise Java Beans 3.0 是有关 EJB3 的任何内容的绝佳引用。 txn 属性实际上非常简单。基本上,您在使用注释的 EJB 中的方法级别使用它们。
- Required 表示运行该方法需要一个 txn。如果调用者在 txn 中,它将被使用。如果不是,将创建并使用一个新的 txn。
- RequiresNew 意味着需要一个新的 txn 来运行该方法。如果调用者在一个 txn 中,它将被挂起并创建和使用一个新的 txn。如果不是,将创建并使用新的 txn
- Mandatory 是指调用者在调用该方法时需要在一个txn 中。否则会引发错误。
- 支持意味着该方法不关心调用者是否在交易中。
- NotSupported - 如果调用者在一个 txn 中,则 txn 将被暂停并且该方法将在没有 txn 的情况下运行。
- 从不 - 与 NotSupported 相同,但如果调用者有 txn 但 NotSupported 不会引发错误,则此方法会引发错误。
关于java - EJB 事务类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/751209/