1
resposta

Erro No Persistence provider for EntityManager named

Estou tentado replicar os conceitos do curso em um projeto para fixar o aprendizado e estou me deparando com o seguinte erro:

abr. 16, 2026 1:05:31 AM jakarta.persistence.spi.PersistenceProviderResolverHolder$DefaultPersistenceProviderResolver log
WARNING: jakarta.persistence.spi::No valid providers found.
java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:119)
at java.base/java.lang.reflect.Method.invoke(Method.java:565)
at javafx.graphics@25.0.1/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:470)
at javafx.graphics@25.0.1/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:370)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:565)
at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:1171)
Caused by: jakarta.persistence.PersistenceException: No Persistence provider for EntityManager named leiloPU
at jakarta.persistence@3.1.0/jakarta.persistence.Persistence.createEntityManagerFactory(Persistence.java:86)
at jakarta.persistence@3.1.0/jakarta.persistence.Persistence.createEntityManagerFactory(Persistence.java:55)
at br.com.octavio.leilomanager/br.com.octavio.leilomanager.application.Teste.main(Teste.java:16)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
... 6 more
Exception running application br.com.octavio.leilomanager.application.Teste

Arquivo do persistence.xml

<persistence-unit name="leiloPU"
    transaction-type="RESOURCE_LOCAL">

    <!-- Provider -->
    <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>

    <properties>

        <!-- Conexão -->
        <property name="jakarta.persistence.jdbc.driver"
            value="org.postgresql.Driver" />
        <property name="jakarta.persistence.jdbc.url"
            value="jdbc:postgresql://localhost:5432/leilo_db" />
        <property name="jakarta.persistence.jdbc.user"
            value="leilo_user" />
        <property name="jakarta.persistence.jdbc.password"
            value="senha" />

        <!-- Dialect -->
        <property name="hibernate.dialect"
            value="org.hibernate.dialect.PostgreSQLDialect" />

        <!-- Schema -->
        <property name="hibernate.hbm2ddl.auto" value="none" />
        <!-- opções: none → produção validate → valida schema update → atualiza 
            automaticamente (cuidado) create → recria tudo -->

        <!-- Logs SQL -->
        <property name="hibernate.show_sql" value="true" />
        <property name="hibernate.format_sql" value="true" />

        <!-- Outras configs úteis -->
        <property name="hibernate.jdbc.lob.non_contextual_creation"
            value="true" />

    </properties>

</persistence-unit>

Estou aplicando o aprendizado em um projeto Java puro + JavaFX tudo em versão 25 e o Hibernate na versão 6.4.4, sem o auxílio de Maven para gerenciar dependências, fazendo assim a importação manual dos .jar. Uso essa maneira, pois ao gerar um arquivo executável do projeto com Maven, quebra todo o projeto.

Alguém tem algum ajuda?

1 resposta

olá Alessandro, pelo erro que você compartilhou, a causa mais provável não parece estar nas propriedades de conexão com o PostgreSQL, mas sim no fato de que o provider JPA não está sendo encontrado em tempo de execução.

Eu validaria principalmente estes pontos:

Local do persistence.xml
O arquivo precisa estar exatamente em META-INF/persistence.xml e esse caminho precisa estar no classpath da aplicação.
Provider e dependências do Hibernate
Como você está usando os .jar manualmente, vale conferir se além do Hibernate principal também estão presentes as dependências necessárias. Esse erro de No valid providers found costuma acontecer quando falta algum .jar essencial.
module-info.java, caso o projeto esteja modularizado
Como você mencionou Java 25 + JavaFX, existe boa chance de estar usando módulos. Nesse caso, o Hibernate/JPA pode precisar de requires e opens corretamente configurados para conseguir localizar e instanciar as entidades.
Nome da unidade de persistência
Confirmar se no código a chamada está exatamente igual ao nome definido no XML:
Persistence.createEntityManagerFactory("leiloPU")
Estrutura completa do persistence.xml
Também vale conferir se o arquivo está com o cabeçalho XML completo e válido, além da tag corretamente declarada.

Pelo erro apresentado, eu começaria olhando primeiro para:
META-INF/persistence.xml, dependências do Hibernate e module-info.java.