Oi pessoas, tenho que salvar dados no banco de dados, na parte de minha aplicação web de registar sugestões, na qual passo do programa rodando no servidor em html para o mysql. O problema é que quando chamo o método de salvar retorna erro de ponteiro nulo da classe servidor, que por sua vez tem uma instancia de uma interface que é instanciada por JpaRepository. O programa criou o schema no bc. de dados normal, mas se não coloco um try-catch dentro do método de cadastrar a aplicação trava. Eu sei que erro de ponteiro nulo ocorre quando tento chamar uma instancia que não foi inicializada , mas não faço ideia alguma isso se insere no meu projeto. Ao usar o thymeleaf, ele consegue passar do html pro java todos os atributos, incluindo o id, da forma certa, mas quando chama a exceção, sempre o exception lanca: java.lang.NullPointerException. Como poderia resolver isso?
Segue meu código abaixo:
@Controller
public class InicialControler {
Servicos fazer;
/*apenas metodo de pag. de sugestoes destacado*/
@RequestMapping("/sugestoes")
public @ResponseBody ModelAndView mostrarSugestao(Ficha fichar){
ModelAndView mostrar = new ModelAndView();
mostrar.setViewName("sugestao");
mostrar.addObject("fichar", fichar);
Ficha fichando = new Ficha(fichar.getNome(), fichar.getEmail(), fichar.getSugestao());
try {
fazer.cadastrar(fichando);
System.out.println(“foi salvo” );
}catch(Exception e) {
System.out.println( "NULL ==> " + e + " "+ fichar.toString());
System.out.println( fichando.toString());
}
return mostrar;
}
}
@Repository
public interface RepositorioDados extends JpaRepository<Ficha, Long> {
}
@Entity
@Table (name = “fichamentos”)
public class Ficha implements Serializable{
/** * */
//private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY) //@Column(name = "id", unique = true)
public long id;
private String nome ;
private String email ;
private String sugestao ;
public Ficha() {
this.nome = "";
this.email = "";
this.sugestao = "";
}
public Ficha( @NotNull String nome, @NotNull String email, @NotNull String sugestao) {
this.nome = nome;
this.email = email;
this.sugestao = sugestao;
}
/GETTERS E SETTERS/
}
@Service
public class Servicos implements GenericosServicos<Ficha, Long> {
RepositorioDados repositar;
@Override
public Optional<Ficha> buscarPorId(Long id) {
return repositar.findById(id);
}
@Override
public Ficha cadastrar(Ficha t) {
return repositar.save(t);
}
@Override
public Ficha alterar(Long k, Ficha t) {
// TODO Auto-generated method stub
return null;
}
@Override
public List<Ficha> ListarTodos() {
return repositar.findAll();
}
@Override
public void deletar(Long k) {
repositar.deleteById(k);
}
}
public interface GenericosServicos<T, K> {
public T cadastrar ( T t);
public T alterar (K k, T t);
public void deletar (K k);
public Optional<T> buscarPorId ( K id);
public List<T> ListarTodos();
}

Assim como 