我有一个用于我的数据库模型和 JPA 控制器的 API,我将它的 jar 添加AProject
到我的BProject
. 当我在BProject
.
错误是No Persistence provider for EntityManager named "MyPersistenceUnitName" in my "BProject"
。
是否有可能或者我应该创建我正在调用的内容AProject
?
是的,您可以重用 AProject.jar 中的代码。根据Java EE 6 教程的持久性章节:
META-INF 目录包含persistence.xml 的JAR 文件或目录称为持久单元的根。持久化单元的范围由持久化单元的根决定。每个持久性单元必须用一个对持久性单元的范围唯一的名称来标识。
持久单元可以打包为 WAR 或 EJB JAR 文件的一部分,也可以打包为 JAR 文件,然后可以将其包含在 WAR 或 EAR 文件中。
如果将持久单元打包为 EJB JAR 文件中的一组类,persistence.xml 应该放在 EJB JAR 的 META-INF 目录中。
如果将持久性单元打包为 WAR 文件中的一组类,persistence.xml 应该位于 WAR 文件的 WEB-INF/classes/META-INF 目录中。
如果将持久性单元打包到将包含在 WAR 或 EAR 文件中的 JAR 文件中,则 JAR 文件应位于
WAR 的 WEB-INF/lib 目录
EAR 文件的库目录