Problema com like no JPA 2

2 respostas
M

Boa tarde,

Estou utilizando jpa 2 e quero adicionar uma condição com predicate e like:
predicados.add(cb.like(cb.upper(emp.get(“conteudo”)), ("%" + termos[i] + “%”).toUpperCase()));

porem no eclipse me retorna esse problema:
The method upper(Expression) in the type CriteriaBuilder is not applicable for the arguments (Path)

Minha duvida é o seguinte, só vou conseguir usar like se eu utilizar metadata? pq o get com megadata retorna Expression

Obrigado

2 Respostas

dev.rafael

Eu faria assim:

predicados.add(cb.like(cb.upper(root.get(_Entidade.conteudo)), ("%" + termos[i] + "%").toUpperCase())

Ñ me parece uma boa idéia vc usar Strings p/ referenciar atributos de uma entidade quando trabalhando com criteria do JPA 2. Dessa forma vc perde a grande vantagem do criteria do JPA 2 q é a tipagem estática e a facilidade de refatoração e fica só com o trabalho.

M

Eu queria fazer sem usar o metamodel por enquanto mas acho que não vai ter jeito.
Vou criar logo e deixar a coisa decente, mesmo assim obrigado

Abraço

Criado 17 de novembro de 2010
Ultima resposta 17 de nov. de 2010
Respostas 2
Participantes 2