java - Java 持久性错误没有有效的提供者
问题描述
我正在尝试遵循本教程。当他们运行代码时,它是成功的。当我运行代码时,我收到一个错误,说WARNING: javax.persistence.spi::No valid providers found.
我查看了文档并明确定义了实体/提供者。我确实有一些红色错误字体,.jpa.HibernatePersistenceProvider
因为它说它无法解析该类。这是主要课程
@PersistenceUnit(unitName = "org.hibernate.tutorial.jpa")
private static EntityManagerFactory entityManagerFactory;
public static void main(String[] args){
entityManagerFactory = Persistence.createEntityManagerFactory("org.hibernate.tutorial.jpa");
Client client = new Client();
client.setId(2);
client.setName("bob");
Bank bank = new Bank();
bank.setName("wells fartgo");
EntityManager entityManager = entityManagerFactory.createEntityManager();
entityManager.getTransaction().begin();
entityManager.persist(client);
entityManager.persist(bank);
entityManager.getTransaction().commit();
entityManagerFactory.close();
}
/resources/WEB_INF 中的 persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" 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">
<persistence-unit name="org.hibernate.tutorial.jpa">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<properties>
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
<property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/classicmodels"/>
<property name="hibernate.connection.autocommit" value="false"/>
<property name="hibernate.connection.username" value="root"/>
<property name="hibernate.connection.password" value=""/>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect"/>
<property name="hibernate.connection.CharSet" value="utf8"/>
<property name="hibernate.connection.characterEncoding" value="utf8"/>
<property name="hibernate.connection.useUnicode" value="true"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
<property name="hibernate.cache.region.factory_class"
value="org.hibernate.cache.ehcache.EhCacheRegionFactory"/>
<property name="hibernate.javax.cache.provider" value="org.ehcache.jsr107.EhcacheCachingProvider"/>
<!--use second level cache-->
<property name="hibernate.cache.use_second_level_cache" value="true"/>
<!--use 3rd level cache-->
<property name="hibernate.cache.use_query_cache" value="true"/>
</properties>
</persistence-unit>
还有我的 pom.xml
<dependencies>
<dependency>
<groupId>org.clojure</groupId>
<artifactId>java.jdbc</artifactId>
<version>0.7.0-alpha3</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>6.0.0.Alpha2</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>${hibernate-core-version}</version>
</dependency>
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.0-api</artifactId>
<version>LATEST</version>
</dependency>
</dependencies>
main(银行/客户)中的类只有getter和setter,所以那里没有错。如果有人可以让我知道如何成功运行这个演示,那就太好了。谢谢。
解决方案
推荐阅读
- node.js - PM2 start npm -- 启动错误
- python - pySerial + SIM800/900 AT 命令 - 读取缓冲区包含之前的写入缓冲区数据
- javascript - 三.js如何计算,旋转后一个物体碰撞到另一个物体多远?
- javascript - select2:自定义匹配器 - 搜索数据数组
- ios - 崩溃:NSManagedObjectContext +[ALAssetsLibrary _library]
- swift - SCNText 不会显示
- swift - swift 4 firebase GeoPoint 解码
- swift - UNCalendarNotificationTrigger 每 3 天?
- neo4j - 使用自己的存储过程计算 Neo4j 中节点的最大度数
- c++ - 如何自我校验工作?