我在学JPA。我读过关于persistence.xml文件的文章。它可以在<persistence-unit>标记下包含更多的<persistence>标记。
在我未完成的工作中,<persistence-unit>定义:
settings
)。
那么,为什么我们需要将应用程序的实体分组到不同的<persistence-unit>中。任何应用程序的所有实体都应该在一个<persistence-unit>标记中。
我认为我们需要多个<persistence-unit>的唯一原因是我们需要建立与多个数据存储的连接。
Q1。当我们需要多个<persistence-unit>标记时,还有其他情况吗?
发布于 2010-04-06 17:14:53
持久化单元表示数据存储。您的问题有点像您期望的那样,您可以为完全相同的数据拥有多个数据存储。这毫无意义。<persistence-unit>的工作方式非常合理。为唯一和独立的数据存储定义DB连接设置、实体映射等。您可以添加更多,但它们将完全独立于彼此。如果您希望或期望将多个数据存储彼此链接起来,那么应该在较低的级别,即在数据存储本身中寻找解决方案。
发布于 2010-04-06 17:14:25
我想你已经回答了你自己的问题:
我认为我们需要多个数据存储的唯一原因是当我们需要建立与多个数据存储的连接时。
在这种情况下,配置文件(在本例中为persistence.xml )应该是灵活和明确的。如果您可以在只有一个持久性单元的情况下省略标记,则会引入不必要的歧义。另外,它还引入了XML模式验证的复杂性。
发布于 2011-07-04 23:41:22
我使用它进行JUnit测试。对于内存中的hsqldb和实际的应用程序数据存储,我有一个不同的数据源。唯一要注意的是,我必须在代码中显式地声明字符单位名称。
/**
* Injected entity manager factory. Do not instantiate {@link EntityManager}
* at a class level.
*/
@PersistenceUnit(unitName = "default")
private transient EntityManagerFactory emf;https://stackoverflow.com/questions/2586763
复制相似问题