Possuo uma classe DAO generico que possui o seguinte método abaixo
public List listaTodos() {
EntityManager em = new JPAUtil().getEntityManager();
CriteriaQuery query = em.getCriteriaBuilder().createQuery(classe);
query.select(query.from(classe));
List<T> lista = em.createQuery(query).getResultList();
em.close();
return lista;
}
Se eu quisesse numa dataTable de pessoas, listar por ordem alfabética como faria?
Jeito mais trabalhoso: procura no google, order by criteria JPA
Você irá encontrar a sintaxe correta.
Jeito mais fácil:
Utilizar o easyCriteria: easycriteria.uaihebert.com
Bastaria fazer
easyCriteria.orderByDesc(“name”);
=D
[quote=Hebert Coelho]Jeito mais trabalhoso: procura no google, order by criteria JPA
Você irá encontrar a sintaxe correta.
Jeito mais fácil:
Utilizar o easyCriteria: easycriteria.uaihebert.com
Bastaria fazer
easyCriteria.orderByDesc(“name”);
=D[/quote]
Ressulcitando o Tópico, alguém sabe como fazer orderBy a partir de um campo de outra tabela?
Só encontrei a partir da que estou buscando, mas seria de um campo de um innerjoin.
Obrigado.
Leandro, posta o código do que vc tem pra gente vê.
EasyCriteria<ItemSolicitacao> easyCriteria = EasyCriteriaFactory.createQueryCriteria(em, ItemSolicitacao.class);
easyCriteria.innerJoin("solicitacao");
Abaixo da solicitacao preciso referenciar o cliente que está na solicitacao.
Iniciei com o problema do order by pois no ItemSolicitacao queria ordenar por nome de cliente.
Mas se eu adicionar o
easyCriteria.innerJoin("cliente");
diz que não existe cliente em ItemSolicitacao e realmente não existe, está em solicitacao.
Queria adicionar o nome do cliente e ordenar por ele.
Obrigado
[quote=Leo_Holanda]tenta assim:
veja se da certo.[/quote]
Olá Leo,
Obtive este erro:
We could not find the join: solicitacao.cliente in the given class: com.model.ItemSolicitacao
Deixa eu entender melhor:
vc tem uma classe ‘ItemSolicitacao’ cujo objeto é ‘solicitacao’, que tem um relacionamento com cliente. Correto?
Qual o nome da variavel que consta o cliente na solicitacao?
[quote=Leo_Holanda]Deixa eu entender melhor:
vc tem uma classe ‘ItemSolicitacao’ cujo objeto é ‘solicitacao’, que tem um relacionamento com cliente. Correto?
Qual o nome da variavel que consta o cliente na solicitacao?
[/quote]
Está desta forma:
@ManyToOne
@JoinColumn(name = "cliente_id")
private Cliente cliente;
o que consegui fazer em relação ao cliente foi filtrar, desta forma:
easyCriteria.andJoinNotEquals("solicitacao", "cliente", 0);
//easyCriteria.andJoinNotEquals("solicitacao", "cliente", 0).orderByAsc("razaosocial");
aí pensei em fazer um orderby mas sem sucesso.