带有TopLink的JPA:在类路径中找不到META-INF/persistence.xml

Swi*_*tch 8 java persistence jpa toplink classpath

public class LoginTest {

public static void main(String[] args) {
    EntityManagerFactory emf = Persistence.createEntityManagerFactory("IRCBotPU");
    EntityManager em = emf.createEntityManager();

    em.getTransaction().begin();

    Login lg = new Login();
    lg.setPassword("password");
    lg.setUserName("Rocky");

    em.persist(lg);
    em.flush();

    Login st = em.find(Login.class, lg.getPassword());
    System.out.println(st);

    em.getTransaction().commit();

    em.close();
    emf.close();

}
}
Run Code Online (Sandbox Code Playgroud)

当我尝试运行这个类时,我遇到了异常

javax.persistence.PersistenceException: No Persistence provider for EntityManager named IRCBotPU:  
   No META-INF/persistence.xml was found in classpath.
Run Code Online (Sandbox Code Playgroud)

META-INF/persistence.xml在我的类路径中.我不知道是什么原因或这个例外.

持久性库是TopLink.

mar*_*igo 22

我有同样的问题,我将我的persistence.xml文件保存在WebContent/META-INF目录中,而jpa规范说:
持久性单元的根目录是WEB-INF/classes目录; 因此,persistence.xml文件包含在WEB-INF/classes/META-INF目录中,
尝试将persistence.xml放在src/META-INF下.


Chs*_*y76 1

persistence.xml不应该在你的类路径中;JAR 文件应该包含persistence.xml在其 META-INF 文件夹中。