繁体   English   中英

接缝-多个持久性单元

[英]Seam - Multiple Persistence Units

Seam在其配置中是否支持多个持久性单元? 另外,您什么时候想要拥有或需要多个持久性单元?

我正在开发一个通用组件,现在,它仅支持一个持久性单元,这对我来说很有意义,因为我从未在每个Web应用程序中使用过多个持久性单元。 因此,我很难看到您将在哪里使用多个持久性单元。

谢谢,

沃尔特

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

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

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

另外,您什么时候想要拥有或需要多个持久性单元?

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

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

@In
EntityManager entityManagerOne;

在您的EntityManager被命名为entityManagerOne (和其他entityManagerTwo )。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM