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

O meu console exibe diferente ao listar médicos após fazer a exclusão lógica

Está exibindo isso: Hibernate: select m1_0.id, m1_0.crm, m1_0.email, m1_0.bairro, m1_0.cep, m1_0.cidade, m1_0.complemento, m1_0.logradouro, m1_0.numero, m1_0.uf, m1_0.especialidade, m1_0.nome, m1_0.telefone from medicos m1_0 order by m1_0.nome limit ?, ?

3 respostas

Oi!

Manda aqui seu controller e repository

Tentei de tudo, analisei o código, mas não consigo encontrar o que fiz de errado.

package med.voll.api.controller;

import jakarta.transaction.Transactional;
import jakarta.validation.Valid;
import med.voll.api.medico.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.web.PageableDefault;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("medicos")
public class MedicoController {

    @Autowired
    private MedicoRepository repository;

    @PostMapping
    @Transactional
    public void cadastrar(@RequestBody @Valid DadosCadastroMedico dados) {
        repository.save(new Medico(dados));
    }

    @GetMapping
    public Page<DadosListagemMedico> listar(@PageableDefault(size = 10, sort = {"nome"}) Pageable paginacao) {
        return repository.findAllByAtivoTrue(paginacao).map(DadosListagemMedico::new);
    }

    @PutMapping
    @Transactional
    public void atualizar(@RequestBody @Valid DadosAtualizacaoMedico dados) {
        var medico = repository.getReferenceById(dados.id());
        medico.atualizarInformacoes(dados);
    }

    @DeleteMapping("/{id}")
    @Transactional
    public void excluir(@PathVariable Long id) {
        var medico = repository.getReferenceById(id);
        medico.excluir();
    }
}
package med.voll.api.medico;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;

public interface MedicoRepository extends JpaRepository<Medico, Long> {

    Page<Medico> findAllByAtivoTrue(Pageable paginacao);
}
solução!

A consulta está correta, de acordo com o seu código:

@GetMapping
public Page<DadosListagemMedico> listar(@PageableDefault(size = 10, sort = {"nome"}) Pageable paginacao) {
    return repository.findAllByAtivoTrue(paginacao).map(DadosListagemMedico::new);
}

Está realizando paginação e ordenando pelo nome.