1
resposta

[DUVIDA] Método diferente de utilizar @DeleteMapping

Deixei existente ao códigos 2 opções para melhor entendimento e estudo. a primeira seria um delete completo do DB, e a segunda a exclusão inteligente.

Porém fiquei com uma dúvida. Ao utilizar "repository.findById().orElseThrow();" para a exclusão lógica seria mais interessante para possiveis erros? Aproveito pra perguntar a respesto das outras request do "CRUD", seria o mais lógico para fundamentar melhor api?


    @DeleteMapping(value = "/dadosFromDB/{id}")
    @Transactional
    public void deleteFromDB(@PathVariable Long id) {
        PacientesModel entityDelete = repository.findById(id).orElseThrow();
        repository.delete(entityDelete);
    }

    @DeleteMapping(value = "/exclusaoLogica/{id}")
    @Transactional
    public void deleteExclusaoLogica(@PathVariable Long id) {
        PacientesModel entityDelete = repository.findById(id).orElseThrow();
        entityDelete.exclusaoLogica();
        repository.delete(entityDelete);
    }
1 resposta

Confesso que não entendi muito bem sua dúvida, lendo o código vi que ambos os métodos deletam do banco de dados, embora você chame um "exclusão lógica" logo após usa um repository.delete então tipo você vai ta matando a entidade no bd em ambas situações kk e sobre o orElseThrow deixo como dica criar uma exceção personalizada, outra coisa também, blinde seu código, pois, você chama o método de deleção sem nem verificar se o Paciente que foi trazido no findById não é nulo por que tu pode pesquisar por um Id mas não significa que ele vai constar no BD saca?