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

art*_*rxe 32 eclipse hibernate persistence.xml jpa-2.0

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

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

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

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

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

谢谢!

Mik*_*unu 42

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

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

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


VH-*_*NZZ 29

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

Project Properties => JPA => Errors/Warnings
Run Code Online (Sandbox Code Playgroud)

激活Enable project specific settingsType,更改通知级别Class is mapped but is not in a persistence unitError其他任何事情你满意.

Eclipse Luna更新:

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

Project Properties => JPA => Errors/Warnings
Run Code Online (Sandbox Code Playgroud)

校验 Enable project specific settings

展开Project

更改Multiple persistence units defined:Ignore.

在此输入图像描述