Ola Pessoal,
Eu estou estudando JPA e agora em Criteria estou tendo dificuldades. Gostaria de cria um filtro que busca no banco as informações que o usuário digitou é um auto Complete.
O problema são dois, não estou conseguindo colocar tudo dentro de um array e acho que a query que estou fazendo está errado.
Estou usando o VRaptor 3, no meu Controller chamo esse método busca.
O erro que aparece é 404 quando gera o URI /produto/busca?nome=Atari
Mas se eu colocar só /produto/busca da NullPointerException.
O return está errado, ele pede um array e eu estou tentando retornar uma String
Se alguém poder me ajudar agradeço muito.
public List<Produto> busca(String nome){
result.include("nome", nome);
return this.produtoDAO.busca(nome);
}
public List<Produto> busca(String nome) {
List encontrados = new ArrayList();
CriteriaBuilder criteriaBuilder = em.getCriteriaBuilder();
CriteriaQuery<String> criteriaQuery = criteriaBuilder.createQuery(String.class);
Root<Produto> root = criteriaQuery.from(Produto.class);
//criteriaBuilder.equal(root.<Produto>get("nome"), nome);
//O problema é aqui, não sei o que fazer com essa linha e tb se ela está certa
criteriaQuery.where(criteriaBuilder.like(root.<Produto>get("Produto").<String>get("nome"), nome));
return this.em.createQuery(criteriaQuery).getSingleResult();
//List<Predicate> criteria = new ArrayList<Predicate>();
//criteria.add(Restrictions.like("nome", nome, MatchMode.ANYWHERE));
//Predicate conjunto = criteriaBuilder.conjunction();
//criteriaQuery.where(conjunto);
}