0

Seam 是否在其配置中支持多个持久性单元?此外,您何时希望拥有或需要多个持久性单元?

我正在开发一个通用组件,现在它只支持一个持久性单元,这对我来说很有意义,因为我从未在每个 Web 应用程序中使用超过 1 个持久性单元。所以,我很难看出你会在哪里使用多个持久性单元。

谢谢,

沃尔特

4

2 回答 2

1

Seam 是否在其配置中支持多个持久性单元?

我不明白为什么它不会。配置几个持久性单元并按名称注入它们:

@PersistenceContext(unitName="UNITNAME")
private EntityManager em;

此外,您何时希望拥有或需要多个持久性单元?

如果您需要访问多个数据源。

于 2010-06-24T03:32:29.337 回答
0

在 JPA 和带有 Seam 的 JPA 中很可能有多个持久性单元。在 Seam 中,这很容易。只需在您的 persistence.xml 中创建多个<persistence-unit name="myapp" />元素并为每个单元配置一个 EntityManagerFactory,并且可以为每个 EntityManagerFactory 配置一个 EntityManager。然后,您可以简单地以标准方式注入任何 EntityManager:

@In
EntityManager entityManagerOne;

您的 EntityManager 被命名entityManagerOne的位置(和另一个entityManagerTwo)。

拥有多个持久性单元的最重要原因是需要使用多个数据库系统。这与数据源无关,但问题只是为您的实体映射定义范围。

另一个原因是您为每个持久性单元选择了一个事务策略(全局 (JTA) 或本地 (resource-local))。因此,如果您需要使用多个事务策略,您可以为同一个数据库创建 2 个持久性单元。

于 2010-08-05T16:02:33.257 回答