java.lang.ClassNotFoundException:JPA找不到javax.persistence.Persistence

我正在使用JPA API。 我收到了一个错误

java.lang.ClassNotFoundException: javax.persistence.Persistence cannot be found 

我的代码如下:

 EntityManagerFactory emf; emf = Persistence.createEntityManagerFactory("mail"); EntityManager em = emf.createEntityManager(); Query query = em.createQuery("SELECT v FROM Version v"); List versions = query.getResultList(); 

emf = Persistence.createEntityManagerFactory("mail");

有解决方案吗

您正在尝试设置一个独立的JPA项目。 为此,您需要一个JPA提供者jar。 两个更受欢迎的提供商是Eclipselink和Hibernate。 如果您使用maven,则可以向其实现添加依赖项。

  • 对于Eclipselink

      org.eclipse.persistence eclipselink 2.5.1  
  • 对于Hibernate

      org.hibernate hibernate-core 4.3.6.Final   org.hibernate hibernate-entitymanager 4.3.6.Final  

如果您不使用maven,可以从他们的站点下载他们的实现并将其放在类路径中。

  • 对于Eclipselink: http : //www.eclipse.org/eclipselink/downloads/
  • 对于Hibernate: http : //hibernate.org/orm/

一些JPA快速入门建议仅使用maven添加JPA API(仅限接口声明)依赖项。

   org.eclipse.persistence javax.persistence 2.1.0  

要么

   org.hibernate.javax.persistence hibernate-jpa-2.1-api 1.0.0.Final  

此方法仅在服务器环境中成功,因为服务器将在运行时提供适当的实现。

右键单击项目 – >属性 – >搜索“部署程序集” – >添加Maven依赖项。