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();
}
}
当我尝试运行这个类时出现异常
javax.persistence.PersistenceException: No Persistence provider for EntityManager named IRCBotPU:
No META-INF/persistence.xml was found in classpath.
META-INF/persistence.xml 在我的类路径中。我不知道是什么原因或这个异常。
持久性库是 TopLink。
最佳答案
我有同样的问题,我将我的 persistence.xml 文件保存在 WebContent/META-INF 目录中,而 jpa 规范说:
持久化单元的根是WEB-INF/classes目录;因此,persistence.xml 文件包含在 WEB-INF/classes/META-INF 目录中
尝试将 persistence.xml 放在 src/META-INF 下。
关于java - 在类路径中找到带有 TopLink : No META-INF/persistence. xml 的 JPA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1279060/