确定persistence.xml的位置

时间:2011-11-01 08:52:04

标签: java eclipse jpa persistence hsqldb

我正在尝试在桌面应用程序中使用jpa。我一直收到错误No Persistence provider for EntityManager named <unit>,我怀疑无法找到我的persistence.xml。

我已将其放在<project>/src/META-INF/persistence.xml

我觉得jpa找不到这个文件,但我不知道如何排除故障。

如何指定persistence.xml文件的存储位置以及如何检查它是否实际读取?

堆栈跟踪:

javax.persistence.PersistenceException: No Persistence provider for EntityManager named myunit
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:69)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47)
    at myapplication.MyEntity.testAddEntity(HistoryAction.java:85)

2 个答案:

答案 0 :(得分:3)

我认为问题在于您的应用程序找不到jpa实现(hibernate,eclipselink)而不是文件 persistence.xml

请参阅this related question和答案。

答案 1 :(得分:1)

如果JPA找不到正确的jpa实现(例如hibernate,eclipselink),则会出现此错误。

确保在构建路径中包含正确的.jar,其中包含您正在使用的JPA实现。

(Matt Handy在评论中给出的答案)