'No Persistence provider for EntityManager named postgres. Maven project
I just got started with JPA and for some reason I get this error:
May 18, 2022 10:47:45 AM javax.persistence.spi.PersistenceProviderResolverHolder$DefaultPersistenceProviderResolver log WARNING: javax.persistence.spi::No valid providers found. Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named postgres at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:86) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55) at Main.testJPA(Main.java:17) at Main.main(Main.java:64)
The persistance unit name matches the one in the code. Here's proof:
public static void testJPA() {
EntityManagerFactory emf =
Persistence.createEntityManagerFactory("postgres");
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
Continent continent = new modelbase.Continent("1","Europe");
em.persist(continent);
Continent c = (Continent)em.createQuery(
"select e from ContinentEntity e where e.name='Europe'")
.getSingleResult();
c.setName("Africa");
em.getTransaction().commit();
em.close();
emf.close();
}
This is the persistance.xml:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<persistence xmlns="https://jakarta.ee/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://jakarta.ee/xml/ns/persistence https://jakarta.ee/xml/ns/persistence/persistence_3_0.xsd"
version="3.0">
<persistence-unit name="postgres"
transaction-type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="javax.persistence.jdbc.driver"
value="org.postgresql.Driver"/>
<property name="javax.persistence.jdbc.url"
value="jdbc:postgresql://localhost:5432/postgres"/>
<property name="javax.persistence.jdbc.user" value="postgres"/>
<property name="javax.persistence.jdbc.password"
value="4563"/>
</properties>
</persistence-unit>
</persistence>
Been trying to get past this error for 2 hours now and can't seem to figure out why. Also this is the pom.xml file :
<?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>org.example</groupId>
<artifactId>LAB9</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.3.4</version>
</dependency>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>eclipselink</artifactId>
<version>3.0.2</version>
</dependency>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>javax.persistence</artifactId>
<version>2.2.1</version>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.1.Final</version>
</dependency>
</dependencies>
</project>
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|