33

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

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

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

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

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

谢谢!

4

2 回答 2

43

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

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

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

于 2011-12-22T14:11:40.960 回答
33

虽然这是 JPA 有效的,但您也可以通过进入每个项目关闭生成的(烦人的)错误通知

Project Properties => JPA => Errors/Warnings

激活Enable project specific settings并在 下Type,将通知级别更改为您喜欢的任何其他内容Class is mapped but is not in a persistence unitError

Eclipse Luna 更新:

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

Project Properties => JPA => Errors/Warnings

查看Enable project specific settings

展开Project

更改Multiple persistence units defined:Ignore

在此处输入图像描述

于 2013-12-17T09:09:12.713 回答