Olá Colegas,
Estou com um problema ao fazer uma consulta tendo q passar um parâmetro.
Tentei fazer a consulta de duas maneiras e ambos dá erro:
Segue os códigos abaixo, quem poder ajudar agradeço
public static final String consulta = "SELECT f FROM Produto f " +
"WHERE f.referencia LIKE ':%nomeProduto%' OR" +
" f.nome LIKE ':%nomeProduto%' OR" +
" f.descricao LIKE ':%nomeProduto%' OR" +
" f.especificacao LIKE ':%nomeProduto%' ";
@SuppressWarnings("unchecked")
public List<Produto> procuraProduto(String nomeProd){
Object[] nomeProduto = new Object[1];
nomeProduto[0] = nomeProd;
return getJpaTemplate().find(consulta, new Object[] { nomeProd});
Com esse código dah esse erro:
Caused by: org.hibernate.QueryParameterException: could not locate named parameter [1]
Fazendo dessa maneira, aparece esse erro:
public EntityManager entityManager;
public EntityManagerFactory entityManagerFactory;
public ProdutoDAO(EntityManagerFactory entityManagerFactory,EntityTransaction transaction,EntityManager entityManager) {
this.entityManagerFactory = entityManagerFactory;
this.entityManager = entityManagerFactory.createEntityManager();
}
entityManager.createNamedQuery("consulta ")
dá null pointer nesse createNamedQuery
java.lang.NullPointerException
br.com.lojasurfwave.service.login.ProdutoDAO.procuraProduto(ProdutoDAO.java:81)
E por fim fiz de outra forma…e acontece o mesmo null pointer
@NamedQueries({
@NamedQuery (
name=“consultaProduto”,
query= “SELECT f FROM Produto f " +
“WHERE f.referencia LIKE ‘:%nomeProduto%’ OR” +
" f.nome LIKE ‘:%nomeProduto%’ OR” +
" f.descricao LIKE ‘:%nomeProduto%’ OR" +
" f.especificacao LIKE ‘:%nomeProduto%’ "
)
})
List produto = entityManager.createNamedQuery("consultaProduto ")
.setParameter("nomeProduto", camisa)
.getResultList();
OBrigado