我正在尝试在桌面应用程序中使用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)
答案 0 :(得分:3)
我认为问题在于您的应用程序找不到jpa实现(hibernate,eclipselink)而不是文件 persistence.xml 。
请参阅this related question和答案。
答案 1 :(得分:1)
如果JPA找不到正确的jpa实现(例如hibernate,eclipselink),则会出现此错误。
确保在构建路径中包含正确的.jar,其中包含您正在使用的JPA实现。
(Matt Handy在评论中给出的答案)