0

阅读这些笔记。在 EBean 站点页面上。有一段包含:

“使用 EJB3 容器管理 EntityManager 的自然方法是使用有状态会话 Bean。”

还有一个暴露的问题,比如

“如何在“用户思考时间”管理EntityManager?

因此,问题是:EJB 无状态 bean 做什么/提供什么可以解决“用户思考时间”所提到的问题?

我猜 ejb 提供:“会话管理”,但是将会话存储在 ThredLocal 变量上并按需提供给用户有什么问题?并且不要使用EJB。ejb 是否为此提供了一站式解决方案?

我的意思是,文章说:由于这个问题,使用 Session(在休眠中)或 EntityManager 的概念是不好的。因此,它说:根本不需要使用它,除非您使用 EJB 无状态 bean 或者您能够自己提供会话管理机制(这应该很难实现?)

4

1 回答 1

0

首先,请记住,整篇文章的重点是在容器外运行时管理 EntityManager 的问题。原因是容器管理的 JPA 在您使用@PersistenceContext.

我不知道“用户思考时间”是什么,所以我不知道需要解决什么问题。正如您所注意到的,如果由于某种原因您不能使用容器管理的 JPA,您可以使用 ThreadLocal 来管理您的 EntityManager。当然,您必须小心正确清除和限定 ThreadLocal 的内容。

归根结底,如果您投入足够的努力,EJB 提供的东西很少是您自己做不到的。选择使用 EJB 与选择使用任何其他库/架构相同:其他人维护、改进等,但您必须适应基础架构。EJB 可能有一点优势,因为它由许多公司实施的标准支持。

于 2013-01-11T16:14:39.540 回答