Ir para conteúdo
Fórum Script Brasil
  • 0

Java com spring boot e JPA chamar uma stored Procedure postgresql - error: no persistence provider for entityManager nomed


Jotahemmy Silva

Pergunta

MODEL -----------------------------------------
package com.procedures.pjProcedure.model;

import lombok.Getter;
import lombok.Setter;

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

@Getter
@Setter
@Entity
@Table(name="tb_especialidades")
public class Especialidade {
    @Id
    @Column(name="esp_codigo")
    private Long codigo;
    @Column(name="esp_descricao")
    private String descricao;
    @Column(name="esp_nome_reduzido")
    private String nomeReduzido;

}
REPOSITORY---------------------------------------------
package com.procedures.pjProcedure.repository;

import com.procedures.pjProcedure.model.Especialidade;
import org.springframework.data.jpa.repository.JpaRepository;

public interface EspecialidadeRepository extends JpaRepository<Especialidade, Long> {

}
SERVICE--------------------------------------
package com.procedures.pjProcedure.service;

import com.procedures.pjProcedure.repository.EspecialidadeRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.object.StoredProcedure;
import org.springframework.stereotype.Service;

import javax.persistence.Entity;
import javax.persistence.EntityManager;
import javax.persistence.StoredProcedureQuery;

@Service
public class EspecialidadeService {

    @Autowired
    private EspecialidadeRepository er;

    public void executaProcedure(EntityManager em){
        StoredProcedureQuery spq = em.createStoredProcedureQuery("spesp01");
        spq.execute();
    }

}

RESOURCE---------------------------------------------
package com.procedures.pjProcedure.resource;

import com.procedures.pjProcedure.model.Especialidade;
import com.procedures.pjProcedure.repository.EspecialidadeRepository;
import com.procedures.pjProcedure.service.EspecialidadeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import java.util.List;

@RestController
@RequestMapping("/especialidades")
public class EspecialidadeResource {

    @Autowired
    private EspecialidadeRepository er;
    @Autowired
    private EspecialidadeService es;

    @GetMapping("/listar")
    public List<Especialidade> Listar(){
        return er.findAll();
    }

    @PostMapping("/exeProcedure")
    public void exeProcedure(){
        EntityManagerFactory emf = Persistence
                .createEntityManagerFactory("spesp01");
        EntityManager em = emf.createEntityManager();
        es.executaProcedure(em);
    }

}
MINHA TABELA NO POSTGRESQL---------------------------
create sequence esp_id_seq
    START WITH 1;

create table tb_especialidades (
    esp_codigo         bigint not null default nextval('esp_id_seq'),
    esp_descricao      varchar(100),
    esp_nome_reduzido  varchar(15),
    primary key (esp_codigo)
);

MINHA STORED PROCEDURE SPESP01()----------------------

CREATE OR REPLACE PROCEDURE public.spesp01()
    LANGUAGE 'plpgsql'
    
AS $BODY$
BEGIN
    
    update tb_especialidades
    set ESP_NOME_REDUZIDO='tst03' 
    WHERE ESP_CODIGO=3;
    COMMIT;

END;
$BODY$;
--------------------------------------------------------
 

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...