我正在尝试按照我老师的文档提供的信息建立一个简单的jpa 2.0项目.我已经在这几个小时了,但不管我做什么,当我尝试创建一个EntityManagerFactory时,我总是得到这个异常:
我发现了很多关于这个例外的类似问题,但没有我能够解决的解决方案.我在这做错了什么?
我发现了很多关于这个例外的类似问题,但没有我能够解决的解决方案.我在这做错了什么?
Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named course at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:56) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:34) at message.SaveMessage.main(SaveMessage.java:8)
目录结构
我的persistence.xml
<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" version="2.0"> <persistence-unit name="course" transaction-type="RESOURCE_LOCAL"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <properties> <property name="hibernate.dialect" value="org.hibernate.dialect.MysqL5InnoDBDialect" /> <property name="hibernate.hbm2ddl.auto" value="update" /> <property name="javax.persistence.jdbc.driver" value="com.MysqL.jdbc.Driver" /> <property name="javax.persistence.jdbc.url" value="jdbc:MysqL://localhost:3306/StudentDB" /> <property name="javax.persistence.jdbc.user" value="root" /> <property name="javax.persistence.jdbc.password" value="pasapas2005" /> </properties> </persistence-unit> </persistence>
我的课
package message; import java.io.Serializable; import javax.persistence.*; @Entity public class Message implements Serializable { private long id; private String text; public Message() { } public Message(long id,String text) { this.setId(id); this.setText(text); } @Id public long getId() { return id; } public void setId(long id) { this.id = id; } public String getText() { return text; } public void setText(String text) { this.text = text; } }
我的测试员(主要)课
package message; import javax.persistence.*; public class SaveMessage { public static void main(String[] args) { EntityManagerFactory emf = Persistence.createEntityManagerFactory("course"); EntityManager em = emf.createEntityManager(); EntityTransaction tx = em.getTransaction(); tx.begin(); Message message = new Message(1,"Hello world"); em.persist(message); tx.commit(); em.close(); System.out.println("message saved"); } }
解决方法
我认为类路径中缺少类org.hibernate.ejb.Hibernat ePersistence.将它添加到您的pom.xml:
<dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactId> <version>3.6.10.Final</version> </dependency>
用适当版本的Hibernate替换3.6.10.Final.
原文地址:https://www.jb51.cc/java/129341.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。