Ao criar o CursoRepository ele esta apresenta o seguinte erro ao tentar rodar o projeot.
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'cursoRepository' defined in br.com.alura.forum.repository.CursoRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Failed to create query for method public abstract br.com.alura.forum.modelo.Curso br.com.alura.forum.repository.CursoRepository.FindByNome(java.lang.String)! No property findByNome found for type Curso!
Curso Repository:
package br.com.alura.forum.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import br.com.alura.forum.modelo.Curso;
public interface CursoRepository extends JpaRepository<Curso, Long>{
Curso FindByNome(String nomeCurso);
}
Topico Form
package br.com.alura.forum.controller.form;
import br.com.alura.forum.modelo.Curso;
import br.com.alura.forum.modelo.Topico;
import br.com.alura.forum.repository.CursoRepository;
public class TopicoForm {
public String titulo;
public String mensagem;
public String nomeCurso;
public String getTitulo() {
return titulo;
}
public void setTitulo(String titulo) {
this.titulo = titulo;
}
public String getMensagem() {
return mensagem;
}
public void setMensagem(String mensagem) {
this.mensagem = mensagem;
}
public String getNomeCurso() {
return nomeCurso;
}
public void setNomeCurso(String nomeCurso) {
this.nomeCurso = nomeCurso;
}
public Topico converter(CursoRepository cursoRepository) {
Curso curso = cursoRepository.FindByNome(nomeCurso);
return new Topico(titulo, mensagem, curso);
}
}
Curso.java
package br.com.alura.forum.modelo;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class Curso {
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String nome;
private String categoria;
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((id == null) ? 0 : id.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Curso other = (Curso) obj;
if (id == null) {
if (other.id != null)
return false;
} else if (!id.equals(other.id))
return false;
return true;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getCategoria() {
return categoria;
}
public void setCategoria(String categoria) {
this.categoria = categoria;
}
}
Pelo que eu entedi é como se não tivesse o nome do curso no Curso.java mas ele esta lá, ou que o mesmo não tem o método findByNome, mas não me pareceu fazer sentido. Poderia me ajudar?