使用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<Version> versions = query.getResultList();
第emf = Persistence.createEntityManagerFactory("mail");
行
任何解决方案?
答案 0 :(得分:22)
您正在尝试设置独立的JPA项目。为此,您需要一个JPA提供者jar。两个更受欢迎的提供商是Eclipselink和Hibernate。如果您正在使用maven,则可以在其实现中添加依赖项。
对于Eclipselink
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>eclipselink</artifactId>
<version>2.5.1</version>
</dependency>
对于Hibernate
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.3.6.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.3.6.Final</version>
</dependency>
如果你没有使用maven,你可以从他们的网站下载他们的实现并将它放在你的类路径中。
有些JPA快速入门建议只添加JPA API(仅限接口声明)依赖项与maven。
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>javax.persistence</artifactId>
<version>2.1.0</version>
</dependency>
或
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.1-api</artifactId>
<version>1.0.0.Final</version>
</dependency>
此方法仅在服务器环境中成功,因为服务器将在运行时提供适当的实现。
答案 1 :(得分:1)
右键单击项目->属性->搜索“部署程序集”->添加Maven依赖关系。
答案 2 :(得分:0)
如果使用 maven ,在 Pom.xml 中添加以下依赖
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
然后干净安装maven