Java EE中的事务和实体管理器管理



我想知道在Java EE中如何管理事务和EntityManager。

如果我理解的话,EJB 有一个 EntityManager,一个 EntityManager 有一个 EntityTransaction。是真的吗?

我已经阅读了这个规范 http://docs.oracle.com/javaee/5/tutorial/doc/bncij.html 有一些我不明白的地方。它被认为是 2 豆 ;我的问题是,当 bean-2 的方法用"必需"注释时,这个 bean 如何知道它是否存在当前事务?所考虑的 entiyManager 在 2 个 bean 中是不同的,所以 bean-2 无法访问对象和当前事务,不是吗?

在 jee 中,您可以将容器视为一个了解一切的大哥哥,在这种情况下,他通过在部署时内省您的 EJB 并在运行时使用它们周围的代理来了解您的事务发生了什么,当您查找或通过注入 EJB 获取时,您得到的不是 EJB 的实例,而是一个引用它的代理, 因此,当您调用 EJB 时,您实际上是在调用一个最终将调用您的 EJB 实例的代理,这样容器就可以跟踪您的事务和其他所有内容,并且作为任何好老大哥,它可以与几乎所有内容进行通信,包括您的所有实体管理器,以便为他们提供有关当前事务的一些上下文。

请记住,jee 的全部意义在于,您的 ejb 不必了解任何事务或除业务之外的任何其他内容,并且尽可能多的事情由容器管理。这里有一些好的信息

最新更新