0

I'm trying to create a simple user entity class and add the tables to the mysql database but I'm getting the following error when I run the class.

Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named default at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:84) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54) at com.all.Controller.main(Controller.java:12)

This points to this line :

 EntityManagerFactory entityManagerFactory= Persistence.createEntityManagerFactory("default");
package com.all;

import com.some.User;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

public class Controller {
public static void main(String[]args){

   EntityManagerFactory entityManagerFactory= Persistence.createEntityManagerFactory("default");
    EntityManager entityManager= entityManagerFactory.createEntityManager();



    User user= new User();
    user.setName("rizana");
    user.setSalary(6000);

    entityManager.getTransaction().begin();
    entityManager.persist(user);
    entityManager.getTransaction().commit();

    entityManager.close();
    entityManagerFactory.close();

}
}

package com.some;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="User")
public class User {
    @Id
    @GeneratedValue
    private int num;
    private String name;
    private double salary;
    private String id;

    public int getNum() {
        return num;
    }

    public void setNum(int num) {
        this.num = num;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public double getSalary() {
        return salary;
    }

    public void setSalary(double salary) {
        this.salary = salary;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    @Override
    public String toString() {
        return "User{" +
                "num=" + num +
                ", name='" + name + '\'' +
                ", salary=" + salary +
                ", id='" + id + '\'' +
                '}';
    }
}

persistence.xml file

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<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_2.xsd"
             version="2.2">
    <persistence-unit name="default"  transaction-type="RESOURCE_LOCAL">
        <class>com.some.User</class>





            <properties>
                <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
                <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/users"/>
                <property name="javax.persistence.jdbc.user" value="root"/>
                <property name="javax.persistence.jdbc.password" value="password"/>
                <property name="javax.persistence.jdbc.schema-generation.database.action" value="create"/>
            <!--    <property name="eclipselink.logging.level" value="SEVERE"/>
                <property name="eclipselink.ddl-generation" value="create"/>-->
            </properties>

        </persistence-unit>


</persistence>

I manually added the eclipselink dependencies to the pom.xml file. I'm using Intellij IDE

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>com.example</groupId>
    <artifactId>demo1</artifactId>
    <version>1.0-SNAPSHOT</version>
    <name>demo1</name>

    <repositories>
        <repository>
            <id>eclipselink</id>
            <url>http://www.eclipse.org/downloads/download.php?r=1&amp;nf=1&amp;file=/rt/eclipselink/maven.repo/</url>
        </repository>
    </repositories>


    <properties>
        <maven.compiler.target>1.8</maven.compiler.target>
        <maven.compiler.source>1.8</maven.compiler.source>
        <junit.version>5.6.2</junit.version>
    </properties>


    <dependencies>
        <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
            <version>2.0.1.Final</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.persistence</groupId>
            <artifactId>javax.persistence-api</artifactId>
            <version>2.2</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <version>${junit.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-engine</artifactId>
            <version>${junit.version}</version>
            <scope>test</scope>
        </dependency>



        <dependency>
            <groupId>org.eclipse.persistence</groupId>
            <artifactId>javax.persistence</artifactId>
            <version>2.0.0</version>
        </dependency>

    </dependencies>

    <build>
        <plugins>
        </plugins>
    </build>
</project>
rianne
  • 31
  • 1
  • 5
  • That's because you haven't included any JPA provider in your dependencies. If EclipseLink is what you want, you should use the `org.eclipse.persistence:eclipselink` dependency. See [the docs](http://wiki.eclipse.org/EclipseLink/Maven) on how to configure EclipseLink using Maven – crizzis Nov 11 '20 at 19:16
  • 1
    https://stackoverflow.com/questions/31673548/how-to-configure-persistence-xml-provider-tag/31674037 – crizzis Nov 12 '20 at 09:59

0 Answers0