首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java -为什么我们需要persistence.xml文件中的多个<persistence-unit>标记?

Java -为什么我们需要persistence.xml文件中的多个<persistence-unit>标记?
EN

Stack Overflow用户
提问于 2010-04-06 17:06:59
回答 3查看 2.1K关注 0票数 4

我在学JPA。我读过关于persistence.xml文件的文章。它可以在<persistence-unit>标记下包含更多的<persistence>标记。

在我未完成的工作中,<persistence-unit>定义:

settings

  • classes(entity类)、jar文件和映射文件(

  • provider information

)。

那么,为什么我们需要将应用程序的实体分组到不同的<persistence-unit>中。任何应用程序的所有实体都应该在一个<persistence-unit>标记中。

我认为我们需要多个<persistence-unit>的唯一原因是我们需要建立与多个数据存储的连接。

Q1。当我们需要多个<persistence-unit>标记时,还有其他情况吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-04-06 17:14:53

持久化单元表示数据存储。您的问题有点像您期望的那样,您可以为完全相同的数据拥有多个数据存储。这毫无意义。<persistence-unit>的工作方式非常合理。为唯一和独立的数据存储定义DB连接设置、实体映射等。您可以添加更多,但它们将完全独立于彼此。如果您希望或期望将多个数据存储彼此链接起来,那么应该在较低的级别,即在数据存储本身中寻找解决方案。

票数 4
EN

Stack Overflow用户

发布于 2010-04-06 17:14:25

我想你已经回答了你自己的问题:

我认为我们需要多个数据存储的唯一原因是当我们需要建立与多个数据存储的连接时。

在这种情况下,配置文件(在本例中为persistence.xml )应该是灵活和明确的。如果您可以在只有一个持久性单元的情况下省略标记,则会引入不必要的歧义。另外,它还引入了XML模式验证的复杂性。

票数 2
EN

Stack Overflow用户

发布于 2011-07-04 23:41:22

我使用它进行JUnit测试。对于内存中的hsqldb和实际的应用程序数据存储,我有一个不同的数据源。唯一要注意的是,我必须在代码中显式地声明字符单位名称。

代码语言:javascript
复制
/**
 * Injected entity manager factory. Do not instantiate {@link EntityManager}
 * at a class level.
 */
@PersistenceUnit(unitName = "default")
private transient EntityManagerFactory emf;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2586763

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档