我正在尝试创建一个使用JPA进行持久化的Eclipse应用程序
我正在尝试使用EclipseLink作为我的提供者(更具体的org.eclipse.persistence.jpa.PersistenceProvider
)和Derby作为我的数据库
目前我有一个Eclipse JPA项目,它处理所有数据库通信并定义模型实体。该产品正在进行单元测试,一切正常。
我的想法是我的Eclipse应用程序使用此项目来获取它使用的模型实体
问题是,只要我尝试创建EntityManager
,我就会收到“No Persistence provider
”例外情况。
我已经尝试直接引用JPA项目,或者首先将它导出到jar并依赖于它。两者都没有。
现在据我所知,这或者意味着它没有看到我的persistence.xml,或者持久性提供程序不在我的类路径中。
持久性文件位于我的jar根目录的META-INF
目录中,所以希望它应该被选中。我还在应用程序插件的MANIFEST.MF
中添加了以下内容:
javax.persistence;bundle-version="1.99.0",
org.eclipse.persistence.antlr;bundle-version="1.1.2",
org.eclipse.persistence.asm;bundle-version="1.1.2",
org.eclipse.persistence.core;bundle-version="1.1.2",
org.eclipse.persistence.jpa;bundle-version="1.1.2"
这有望使所需的课程可用。
谁能看到我错过的东西?有没有办法看出它可能是哪两个问题?这是其中一个问题吗?
感谢您的帮助。
答案 0 :(得分:3)
注意:目前 wiki example 仍然已弃用(自August 2008起......)
您可以在 updated example a launcher(包含相关插件列表)中看到
他们的MANIFEST.MF
看起来像:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Application Plug-in
Bundle-SymbolicName: org.eclipse.persistence.example.jpa.rcp.comics; singleton:=true
Bundle-Version: 1.0.0
Require-Bundle: org.eclipse.core.runtime,
org.eclipse.ui,
org.eclipse.persistence.jpa,
system.bundle,
org.eclipse.persistence.example.jpa.comics.model.annotated;bundle-version="1.0.0",
javax.persistence;bundle-version="1.99.0",
org.eclipse.persistence.antlr;bundle-version="0.1.0"
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Bundle-ClassPath: .
Import-Package: org.apache.derby.jdbc
可能正在使用该示例可以帮助您找到应用程序中的错误信息吗?