我现在正在使用JPA 2.0项目(在Eclipse Indigo中)。在我的persistence.xml文件中,我需要指定两个< persistence-unit>标签,因为我有两个不同的数据库可以使用。这样做,我得到以下警告:
定义了多个持久性单元 - 只识别第一个持久性单元
更重要的是,如果我创建我的实体并将其放在我的第二个< persistence-unit>中,我会收到一条错误消息,说我的实体未在持久性单元中声明:
类“my.package.MyClass”已映射,但未包含在任何持久性单元中
所以,问题是:可以声明(并按预期使用它们)许多< persistence-unit> persistence.xml文件中的标签?如果是,我需要做些什么才能获得准确的行为?
谢谢!
答案 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
。