enter image description here当前处于休眠状态。我创建简单的项目。我按原样进行了所有操作,但得到“没有名为xxxx的EntityManager的持久性提供程序”。我不知道怎么了。我找到了很多解决方案,但没有一个可以解决我。
package pl.javastart.dao;
import pl.javastart.model.Book;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;
public class BookDaoImpl implements BookDao {
private EntityManagerFactory emFactory;
private EntityManager entityManager;
public BookDaoImpl() {
emFactory = Persistence.createEntityManagerFactory("myPersistenceUnit");
entityManager = emFactory.createEntityManager();
}
public void save(Book book) {
EntityTransaction tx = entityManager.getTransaction();
tx.begin();
entityManager.persist(book);
tx.commit();
}
public Book get(Long id) {
Book book = entityManager.find(Book.class, id);
return book;
}
public void cleanUp() {
entityManager.close();
emFactory.close();
}
}
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"
version="2.1">
<persistence-unit name="myPersistenceUnit"
transaction-type="RESOURCE_LOCAL">
<properties>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/library" />
<property name="javax.persistence.jdbc.user" value="root" />
<property name="javax.persistence.jdbc.password" value="admin" />
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
<property name="javax.persistence.schema-generation.database.action"
value="drop-and-create"/>
</properties>
</persistence-unit>
</persistence>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>JPAbezSpringa</groupId>
<artifactId>jpabezbezsprinsaa</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<release>10</release>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.11</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.3.1.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>5.3.1.Final</version>
</dependency>
<dependency>
<groupId>javax.transaction</groupId>
<artifactId>jta</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.0</version>
</dependency>
</dependencies>
</project>
线程“主”中的异常javax.persistence.PersistenceException:名为myPersistenceUnit的EntityManager的持久性提供程序没有 在javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:85) 在javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54) 在pl.javastart.dao.BookDaoImpl。(BookDaoImpl.java:16) 在pl.javastart.main.Main.main(Main.java:10)
答案 0 :(得分:0)
也许会对您有帮助:https://stackoverflow.com/a/1285436/9593249
定义持久性提供程序名称:
<provider>org.hibernate.ejb.HibernatePersistence</provider>
如果您使用的是Hibernate 4或Hibernate 5
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
之后
<persistence-unit name="myPersistenceUnit">