Olá amigos, estou tentando integrar a Paginação da Displaytag com o Hibernate, tava ocorrendo tudo bem até quando chegou a Ordenação…
Quando eu cliquo em alguma coluna ele envia o nome dela como parametro, que pode ser: matricula, tipoPessoa.nome, etc …
Com a matricula beleza… mas com o “tipoPessoa.nome” e outros relacionamentos da erro “could not resolve property”.
Isso se deve ao fato que o Order(Criteria.addOrder) não suporta Relacionamentos / associationPath ???
Alguem ai sabe como contornar isso, para evitar essa POG:
Criteria servidorPublicoCriteria = daoHbn.createCriteria();
Criteria tipoPessoaCriteria = servidorPublicoCriteria.createCriteria("tipoPessoa");
Criteria orgaoCriteria = servidorPublicoCriteria.createCriteria("orgao");
Criteria cargoCriteria = servidorPublicoCriteria.createCriteria("cargo");
// ---- RESTRIÇÕES E ETC .... ---
// È porque 'sortCriterion' representa um relacionamento ....
// Todos os relacionamentos/colunas acessiveis na displaytag devem ser configurados aqui.
if(sortCriterion.contains(".")){
if(sortCriterion.startsWith("tipoPessoa")){
sortCriterion = sortCriterion.replace("tipoPessoa.", "");
tipoPessoaCriteria.addOrder(daoHbn.getOrder(sortDirection, sortCriterion));
}else if(sortCriterion.startsWith("cargo")){
sortCriterion = sortCriterion.replace("cargo.", "");
cargoCriteria.addOrder(daoHbn.getOrder(sortDirection, sortCriterion));
}else if(sortCriterion.startsWith("orgao")){
sortCriterion = sortCriterion.replace("orgao.", "");
orgaoCriteria.addOrder(daoHbn.getOrder(sortDirection, sortCriterion));
}else{
throw new IllegalArgumentException("A coluna '" + sortCriterion + "' não existe ou não foi configurada para ordenação !");
}
}else{
servidorPublicoCriteria.addOrder(daoHbn.getOrder(sortDirection, sortCriterion));
}