zocode
zocode

Reputation: 19

Java: "No Persistence provider for EntityManager named XYZ" exception, even though already defined in persistence.xml

I am getting a no persistence provider exception, but I already defined the provider in persistence.xml. This is a Maven project.

<?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="XYZ" transaction-type="RESOURCE_LOCAL">
        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
        <class>model.XYZ</class>
        <properties>
            <property name="javax.persistence.jdbc.driver" value="com.mysql.cj.jdbc.Driver"/>
            <property name="javax.persistence.jdbc.url" value=""/>
            <property name="javax.persistence.jdbc.user" value=""/>
            <property name="javax.persistence.jdbc.password" value=""/>
        </properties>
    </persistence-unit>
</persistence>

Upvotes: 0

Views: 537

Answers (1)

Juan Moreno
Juan Moreno

Reputation: 2785

If the application use the new jakarta namespace, you need to add the 3.0.0 or newer version to your pom.xml:

<dependency>
    <groupId>org.eclipse.persistence</groupId>
    <artifactId>eclipselink</artifactId>
    <version>3.0.0</version>
</dependency>

Else, we need to use the previous one, eg 2.7.8:

<dependency>
    <groupId>org.eclipse.persistence</groupId>
    <artifactId>eclipselink</artifactId>
    <version>2.7.8</version>
</dependency>

Upvotes: 2

Related Questions