org.hibernate.QueryException: Named parameter not bound : modelo

Pessoal, boa noite! Estou tendo problemas ao executar uma busca utilizando JPQL. Alguém sabe oque pode ser ?

Método de busca

public List<T> listarPorNome(Class<T> classe, String jpql) {
		try {
			TypedQuery<T> query = this.entityManager.createQuery(jpql, classe);
			List<T> resultado = query.getResultList();
			return resultado;
		} catch (RuntimeException e) {
			e.printStackTrace();
			return null;
		}
	}

service

public List<VeiculoPasseio> listarPorNome(String modelo) {
		return this.repositorio.listarPorNome(VeiculoPasseio.class, "Select u from VeiculoPasseio u where u.modelo like :modelo");
		
	}

main para testes


public class Teste {
	
	public static void main(String[] args) {
		
		VeiculoPasseioService service = new VeiculoPasseioService();
		 service.listarPorNome("gol");
	}

}

Classe

package br.com.model.entidades;

import java.io.Serializable;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.OneToOne;

@Entity
public class VeiculoPasseio extends Veiculo implements Serializable {
	
	private static final long serialVersionUID = 1L;
	
	private double tamanho;
	private int numeroPassageiros;
	
	@OneToOne(mappedBy = "veiculoPasseio", cascade = CascadeType.ALL)
	private ImagemVeiculoPasseio imagem;

	public VeiculoPasseio(String placa, String modelo, String fabricante, int ano, String cor, double tamanho,
			int numeroPassageiros, double motor, double valorDiaria) {
		super(placa, modelo, fabricante, ano, cor, motor, valorDiaria);
		this.tamanho = tamanho;
		this.numeroPassageiros = numeroPassageiros;

	}

	public VeiculoPasseio() {

	}
	
	

	public ImagemVeiculoPasseio getImagem() {
		return imagem;
	}

	public void setImagem(ImagemVeiculoPasseio imagem) {
		this.imagem = imagem;
	}

	public double getTamanho() {
		return tamanho;
	}

	public void setTamanho(double tamanho) {
		this.tamanho = tamanho;
	}

	public int getNumeroPassageiros() {
		return numeroPassageiros;
	}

	public void setNumeroPassageiros(int numeroPassageiros) {
		this.numeroPassageiros = numeroPassageiros;
	}

	@Override
	public String toString() {
		return "VeiculoPasseio [tamanho=" + tamanho + ", numeroPassageiros=" + numeroPassageiros + "]";
	}

}

Erro

org.hibernate.QueryException: Named parameter not bound : modelo
	at org.hibernate.query.internal.QueryParameterBindingsImpl.verifyParametersBound(QueryParameterBindingsImpl.java:211)
	at org.hibernate.query.internal.AbstractProducedQuery.beforeQuery(AbstractProducedQuery.java:1511)
	at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1615)
	at org.hibernate.query.Query.getResultList(Query.java:165)
	at br.com.model.dao.DaoGenerico.listarPorNome(DaoGenerico.java:50)
	at br.com.model.servicos.VeiculoPasseioService.listarPorNome(VeiculoPasseioService.java:68)
	at br.com.model.dao.Teste.main(Teste.java:11)

Pela descrição do erro, você não está setando o parâmetro modelo na sua query.
Pena que você não postou a query pra ser conferida.

Olá, staroski, obrigado por se propor em ajudar. Adicionei sim a query acima. Como adicionei muita informação, você passou despercebido. Mandarei novamente abaixo.

public List<VeiculoPasseio> listarPorNome(String modelo) {
		return this.repositorio.listarPorNome(VeiculoPasseio.class, "Select u from VeiculoPasseio u where u.modelo like :modelo");
		
	}

O método acima chama esse método do repositório

public List<T> listarPorNome(Class<T> classe, String jpql) {
		try {
			TypedQuery<T> query = this.entityManager.createQuery(jpql, classe);
			List<T> resultado = query.getResultList();
			return resultado;
		} catch (RuntimeException e) {
			e.printStackTrace();
			return null;
		}
	}

Pois é, como eu disse, você esqueceu de setar o parâmetro modelo.
Na sua query tem um named parameter chamado :modelo, mas no seu código java você não está setando o valor para este parâmetro.

TypedQuery<T> query = this.entityManager.createQuery(jpql, classe); // está criando a query
List<T> resultado = query.getResultList(); // e já está tentando obter o resultado

Deveria passar o valor do modelo, assim:

TypedQuery<T> query = this.entityManager.createQuery(jpql, classe);
query.setParameter("modelo", valorDoModeloParaSerPesquisado);
List<T> resultado = query.getResultList();

Basicamete você tem que refatorar seu método, veja:

public List<VeiculoPasseio> listarPorNome(String modelo) { // você não está passando o modelo recebido por parâmetro para o método do repositório
    return this.repositorio.listarPorNome(VeiculoPasseio.class, "Select u from VeiculoPasseio u where u.modelo like :modelo");
	
}