Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Exception in thread "main" javax.persistence.

Olá Alguém poderia me ajudar por favor, não consigo achar o erro. Estou tentando adicionar e não consigo.

Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named loja at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:85) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54) at br.com.alura.loja.testes.CadastroDeproduto.main(CadastroDeproduto.java:19)

package br.com.alura.loja.testes;

import br.com.alura.loja.modelo.Produto;

import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; import java.math.BigDecimal;

public class CadastroDeproduto {

public static void main(String[] args) {
    Produto celular = new Produto();
    celular.setNome("Xiomi Redmi");
    celular.setDescricao("Muito Legal");
    celular.setPreco(new BigDecimal("800"));

    EntityManagerFactory factory =
            Persistence.createEntityManagerFactory("loja");

    EntityManager em = factory.createEntityManager();
    em.getTransaction().begin();
    em.persist(celular);
    em.getTransaction().commit();
    em.close();
}

}

<persistence-unit name="Loja" transaction-type="RESOURCE_LOCAL">
    <class>br.com.alura.loja.modelo.Produto</class>

    <properties>
        <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.cj.Driver"/>
        <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost/loja"/>
        <property name="javax.persistence.jdbc.user" value="root"/>
        <property name="javax.persistence.jdbc.password" value="123456"/>

        <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
        <property name="hibernate.show_sql" value="true"/>
        <property name="hibernate.hbm2ddl.auto" value="update"/>

    </properties>
</persistence-unit>

4.0.0

<groupId>br.com.alura</groupId>
<artifactId>loja</artifactId>
<version>1.0-SNAPSHOT</version>

<properties>
    <maven.compiler.source>18</maven.compiler.source>
    <maven.compiler.target>18</maven.compiler.target>
</properties>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.0</version>
            <configuration>
                <release>11</release>
            </configuration>
        </plugin>
    </plugins>
</build>
<dependencies>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>5.4.27.Final</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.30</version>
    </dependency>
</dependencies>

package br.com.alura.loja.modelo;

import javax.persistence.*; import java.math.BigDecimal;

@Entity @Table(name = "produtos") public class Produto {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String nome;
private String descricao;
private BigDecimal preco;

public Long getId() {
    return id;
}

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

public String getNome() {
    return nome;
}

public void setNome(String nome) {
    this.nome = nome;
}

public String getDescricao() {
    return descricao;
}

public void setDescricao(String descricao) {
    this.descricao = descricao;
}

public BigDecimal getPreco() {
    return preco;
}

public void setPreco(BigDecimal preco) {
    this.preco = preco;
}

}

4 respostas

Pela pesquisa que fiz sobre seu erro achei uma coisa que está faltando no seu persistence.xml.

<provider>org.hibernate.ejb.HibernatePersistence</provider>

Abaixo da tag persistence-unit.

Caso queira dar uma olhada: https://www.guj.com.br/t/solucao-erro-no-persistence-provider-for-entitymanager-named/294089

Arrumei e esta do mesmo jeito =/!

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

solução!

Oi Gabriel,

O problema está nessa linha:

EntityManagerFactory factory = Persistence.createEntityManagerFactory("loja");

Você passou loja, mas no arquivo persistence.xml está Loja(com L maiúsculo)

Obrigado Rodrigo resolvido.