Ir para conteúdo
Fórum Script Brasil

Jotahemmy Silva

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Posts postados por Jotahemmy Silva

  1. 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$;
    --------------------------------------------------------
     

×
×
  • Criar Novo...