一个persistence.xml中有多个持久性单元标记

时间:2011-12-06 10:29:47

标签: eclipse hibernate jpa-2.0 persistence.xml

我现在正在使用JPA 2.0项目(在Eclipse Indigo中)。在我的persistence.xml文件中,我需要指定两个< persistence-unit>标签,因为我有两个不同的数据库可以使用。这样做,我得到以下警告:

  

定义了多个持久性单元 - 只识别第一个持久性单元

更重要的是,如果我创建我的实体并将其放在我的第二个< persistence-unit>中,我会收到一条错误消息,说我的实体未在持久性单元中声明:

  

类“my.package.MyClass”已映射,但未包含在任何持久性单元中

所以,问题是:可以声明(并按预期使用它们)许多< persistence-unit> persistence.xml文件中的标签?如果是,我需要做些什么才能获得准确的行为?

谢谢!

2 个答案:

答案 0 :(得分:41)

JPA不限制persistence.xml中定义的持久性单元数。此警告只是告诉Eclipse IDE中工具的限制。例如,这里有http://www.eclipse.org/webtools/dali/gettingstarted.php

  

目前Dali仅支持一个持久性单元和一个持久性   每个项目的XML文件。 JPA项目中可以存在其他配置,   但是,验证和默认处理可能不正确   使用多个持久性单元。

我想没有已知的方法可以在Eclipse IDE中完成这项工作。

答案 1 :(得分:28)

虽然这是JPA有效,但您也可以通过进入

逐个项目关闭产生的(恼人的)错误通知。
Project Properties => JPA => Errors/Warnings

激活Enable project specific settings,在Type下,将Class is mapped but is not in a persistence unit的通知级别从Error更改为您认为合适的任何其他内容。

Eclipse Luna更新:

Luna中设置的位置和名称已更改。新位置是:

Project Properties => JPA => Errors/Warnings

检查Enable project specific settings

展开Project群组

Multiple persistence units defined:更改为Ignore

enter image description here

相关问题