[Hibernate] Criando Criteria sem usar a sessão

3 respostas
Decio_Luckow

Bom dia Pessoal,

Tenho uma tela de consulta de agendamento, com vários campos que serão os filtros para a pesquisa.

Estou usando a Action para ler estes campos e montar a condição da minha consulta, então passarei o objeto Criteria para a RN onde será feita a pesquisa.

Me encomoda um pouco o fato de eu ter que utilizar o session na Action para montar a Criteria, já que bastaria executar um criteria.list() e pronto, estaria feita pesquisa, em vez de enviar isto para a RN (nao acho que seja uma boa opção). Melhor seria se eu pudesse montar a Criteria sem precisar aa session.

Então descobri a classe Criterion (diferente de Criteria) que esta sim, é a classe Pai das Restriction e eu poderia utilizar. Mas o problema é que dependendo de uma condição ser utilizada ou não, eu vou precisar fazer um “criteria.createAlias(“analise”,“a”);” para incluir mais esta tabela na consulta e poder fazer algo do tipo: agendamento.analise.nome like…

Então a questao é a seguinte, existe alguma classe no Hibernate em que eu possa completar as informacoes do filtro (no caso o alias ou outros que aparecerem) para poder montar toda a condição sem precisar da session?

Eu poderia montara minha propria classe para isso, e claro, chegando na RN eu transformava as informações carregadas nela em um Criteria de Verdade.

Mas o Hibernate já fornece isso?

Detalhe: a tela de pesquisa utiliza ‘like’, e condições de > e < o impediria de se usar o tecnica da consulta baseada no ‘Example’.

muito obrigado

Décio Luckow

3 Respostas

Decio_Luckow

Opa!, encontrei uma solução, seria a classe DetachedCriteria.

Para aqueles que conhecem a DetachedCriteria, se ela possuir alguma deficiencia ou qq experiencia, pode postar aqui.

abraços

Décio Luckow

C

Cara,

Não acho que seja uma boa tornar a sua action acoplada à API do Hibernate. O ideal é você criar um objeto seu que contenha os dados do filtro, e este objeto seria passado como parâmetro à classe responsável pela persistência.

passos

Sinceramente eu nao sei se entendi bem o que vc quer fazer.

Uma sugestão. Recebe tudo que vem do front end na sua Action popula um objeto de dominio com todas as informações que vc quer pesquisar e manda pra sua RN pesquisar utilizando Example Querys

Criado 5 de julho de 2007
Ultima resposta 6 de jul. de 2007
Respostas 3
Participantes 3