Nesse caso, preciso passar o repository dentro do service porque ao mudar para ResponseEntity, perde a função de salvar, etc..? Fiquei um pouco em dúvida.
Nesse caso, preciso passar o repository dentro do service porque ao mudar para ResponseEntity, perde a função de salvar, etc..? Fiquei um pouco em dúvida.
Olá, Rodrigo!
Entendo que a mudança para ResponseEntity possa ter gerado algumas dúvidas. Vou tentar esclarecer isso para você.
A resposta para sua pergunta é sim, você precisa passar o repository para a classe service. Isso ocorre porque a classe service é responsável por executar as regras de negócio e as validações da aplicação, e muitas vezes essas regras envolvem interações com o banco de dados, que são realizadas através do repository.
Por exemplo, na classe AgendaDeConsultas
que foi criada na aula, o método agendar()
precisa salvar um agendamento no banco de dados. Para isso, ele usa o método save()
do ConsultaRepository
. Portanto, o ConsultaRepository
é injetado na classe AgendaDeConsultas
usando a anotação @Autowired
:
@Service
public class AgendaDeConsultas {
@Autowired
private ConsultaRepository consultaRepository;
public void agendar(DadosAgendamentoConsulta dados) {
var consulta = new Consulta();
consultaRepository.save(consulta);
}
}
A mudança para ResponseEntity não afeta a necessidade de passar o repository para a classe service. O ResponseEntity é usado no controller para encapsular a resposta HTTP, incluindo o status da resposta e o corpo da resposta. No entanto, o controller ainda precisa chamar a classe service para executar as regras de negócio, e a classe service ainda precisa do repository para interagir com o banco de dados.
Portanto, mesmo com a mudança para ResponseEntity, a classe service ainda precisa do repository.
Espero ter ajudado e bons estudos!