Estava fazendo o projeto e me deparei com este erro quando executava meu código
"java.lang.NullPointerException: Cannot invoke \"med.voll.api.repositories.MedicoRepository.findAll()\" because \"this.medicoRepository\" is null\r\n\tat med.voll.api.controller.
Fui fazendo alguns testes e tentando encontrar o erro, e percebi que ele so começou quando coloquei a anotação @Transactional no meu put e post, segue o código para caso alguém saiba me ajudar
---------Controller---------
package med.voll.api.controller;
import jakarta.validation.Valid;
import med.voll.api.models.medico.DTO.AtualizarMedicoDTO;
import med.voll.api.models.medico.DTO.CreateMedicoDTO;
import med.voll.api.models.medico.DTO.ListMedicoDTO;
import med.voll.api.models.medico.Medico;
import med.voll.api.repositories.MedicoRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("medicos")
public class medicoController {
@Autowired
private MedicoRepository medicoRepository;
@PostMapping
@Transactional
private Medico create(@RequestBody @Valid CreateMedicoDTO dados){
Medico medico = new Medico(dados);
medicoRepository.save(medico);
return medico;
}
@GetMapping
private List<ListMedicoDTO> getAll(){
return medicoRepository.findAll().stream().map(ListMedicoDTO::new).toList();
}
@PutMapping
@Transactional
private Medico update(@RequestBody AtualizarMedicoDTO dados){
Medico medico = medicoRepository.getReferenceById(dados.id());
medico.atualizarInformacoes(dados);
medicoRepository.save(medico);
return medico;
}
---------Repository---------
package med.voll.api.repositories;
import med.voll.api.models.medico.Medico;
import org.springframework.data.jpa.repository.JpaRepository;
public interface MedicoRepository extends JpaRepository<Medico, Long> {
}