Eai pessoal!
Estou tentando subir uma aplicação e estou com alguns problemas. Quando consigo subir, estou tomando Nullpoint ao invocar o método ‘listAll’, e quando tento resolver o nullpoint (colocando um construtor no meu service), a aplicação não sobe por conta do bean que não é encontrado no meu repository.
Quando testo a aplicação com o contrutor (seja ele padrão ou vazio) eu recebo o erro;
Field serieRepository in academy.devdojo.springboot2.service.SerieService required a bean of type 'academy.devdojo.springboot2.repository.SerieRepository' that could not be found.
Action: Consider defining a bean of type 'academy.devdojo.springboot2.repository.SerieRepository' in your configuration.
Quando anoto meu service com @NoArgsConstructor consigo subir a aplicação, mas não consigo chamar o método listAll;
There was an unexpected error (type=Internal Server Error, status=500).
Cannot invoke "academy.devdojo.springboot2.repository.SerieRepository.findAll()" because "this.serieRepository" is null
java.lang.NullPointerException: Cannot invoke "academy.devdojo.springboot2.repository.SerieRepository.findAll()" because "this.serieRepository" is null
Já testei colocar construtor padrão, construtor vazio, anotar ela com @AllArgsConstructor, mas ela não sobe. Só sobe apenas quando deixo sem construtor, ou anotando ela com @NoArgsConstructor.
Vou colocar meu service e meu repository aqui:
Service:
package academy.devdojo.springboot2.service;
import academy.devdojo.springboot2.domain.Serie;
import academy.devdojo.springboot2.repository.SerieRepository;
import academy.devdojo.springboot2.requests.SeriePostRequestBody;
import academy.devdojo.springboot2.requests.SeriePutRequestBody;
import lombok.NoArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
import org.springframework.web.server.ResponseStatusException;
import java.util.List;
@Service
@NoArgsConstructor
public class SerieService {
private SerieRepository serieRepository;
public List<Serie> listAll(){
return serieRepository.findAll();
}
public Serie findByIdOrThrowBadRequestException(long id){
return serieRepository.findById(id).orElseThrow(() -> new ResponseStatusException(HttpStatus.BAD_REQUEST, "Serie not found"));
}
public Serie save(SeriePostRequestBody seriePostRequestBody) {
return serieRepository.save(Serie.builder().name(seriePostRequestBody.getName()).build());
}
public void delete(long id) {
serieRepository.delete(findByIdOrThrowBadRequestException(id));
}
public void replace(SeriePutRequestBody seriePutRequestBody) {
Serie savedSerie = findByIdOrThrowBadRequestException(seriePutRequestBody.getId());
Serie serie = Serie.builder().id(savedSerie.getId()).name(seriePutRequestBody.getName()).build();
serieRepository.save(serie);
}
}
.
.
Repository:
package academy.devdojo.springboot2.repository;
import academy.devdojo.springboot2.domain.Serie;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface SerieRepository extends JpaRepository<Serie, Long> {
}
Pelo o que pesquisei o erro está no repository que está me retornando null, mas possuo um outro projeto que está bem dizer idêntico neste quesito (o repository apenas implementa os métodos do JpaRepository, mas não possui métodos.), mas funciona normalmente.
Gostaria de saber se algum de vocês já teve algum problema parecido. Desde já agradeço!