Olá, pessoal!
Estou na última parte do curso, fazendo o método de delete. Ao realizar o que o professor passou, o seguinte erro começou a aparecer:
Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.
2024-05-07T20:46:55.977-03:00 ERROR 2024 --- [api] [ restartedMain] o.s.b.d.LoggingFailureAnalysisReporter :
***************************
APPLICATION FAILED TO START
***************************
Description:
Field repository in br.com.med.voll.api.controller.MedicoController required a bean of type 'br.com.med.voll.api.repository.MedicoRepository' that could not be found.
The injection point has the following annotations:
- @org.springframework.beans.factory.annotation.Autowired(required=true)
Action:
Consider defining a bean of type 'br.com.med.voll.api.repository.MedicoRepository' in your configuration.
Juro que já tentei revirar o meu código do avesso e tentei pesquisar em todos os sites, mas não consigo encontrar o que pode ser. Desculpe se é algum erro muito obvio e bobo, mas não to conseguindo resolver isso!
Até tentei adicionar o @EntityScan, mas nada:
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
@EntityScan(basePackages = {"br.com.med.voll.api.repository"})
public class ApiApplication {
public static void main(String[] args) {
SpringApplication.run(ApiApplication.class, args);
}
}
Meu repository:
@Repository
public interface MedicoRepository extends JpaRepository <MedicoEntity, Long> {
}
Meu controller:
package br.com.med.voll.api.controller;
import br.com.med.voll.api.dto.DadosAtualizaoMedicoDTO;
import br.com.med.voll.api.dto.DadosCadastroMedicoDTO;
import br.com.med.voll.api.dto.DadosListagemMedicoDTO;
import br.com.med.voll.api.entity.MedicoEntity;
import br.com.med.voll.api.repository.MedicoRepository;
import br.com.med.voll.api.service.MedicoService;
import jakarta.validation.Valid;
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.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/medicos")
public class MedicoController {
@Autowired
private MedicoRepository repository;
@Autowired
private MedicoEntity entity;
@PostMapping
@Transactional
public void cadastrarMedico(@RequestBody @Valid DadosCadastroMedicoDTO dados) {
repository.save(new MedicoEntity(dados));
}
@GetMapping
public Page<DadosListagemMedicoDTO> listar(@PageableDefault(size = 3, sort = {"email"}) Pageable paginacao) {
return repository.findAll(paginacao).map(DadosListagemMedicoDTO::new);
}
@PutMapping
@Transactional
public void atualizar(@RequestBody @Valid DadosAtualizaoMedicoDTO dados) {
MedicoEntity medico = repository.getReferenceById(dados.id());
entity.atualizarInformacoesMedico(dados);
}
@DeleteMapping("/{id}")
@Transactional
public void excluir(@PathVariable(name = "id") Long id) {
repository.deleteById(id);
}
}
Muito obrigado desde já, galera <3