Consulta Criteria

5 respostas
Guitar_Men

Pessoal,
estou fazendo uma consulta usando o Criteria do hibernate e gostaria de saber se existe uma forma simples de fazer o seguinte. Tenho um list e gostaria de trazer todos os objetos da tabela referente a ObjetoA menos os que estão no meu list…

5 Respostas

MarceloNeo

Opa guitar, acho que isso resolve teu problema…

criteria.add(Restrictions.not(Restrictions.in("nome_da_tua_propridade_Objeto", collectionDesejada)));

Essa collection é a de produtos que você não quer venha no resultado

Guitar_Men

Valew pela resposta…
Estava avaliando melhor meu problema e na verdade preciso do seguinte. Eu persisto um objeto A com alguns atributos e coloco ele em uma lista. Eu precisava ficar monitorado o estado (valor de seus atributos) desse objeto. E assim que alterasse o valor de qualquer atributo eu precisaria retornar essa alteração entende ? Mais ou menos como um padrão observador. O Hibernate tem algo pronto quanto a isso ja ??

MarceloNeo

Deve ter! “mas não sei nem mesmo se existe”
Sugestão Implementação no Muki hahaahha
Se você tem sua camada de persistencia bem definida fica facil,

  • Na camada de persistência, nos seus metodos de Update, usa reflection do Java, pega os campos, compara verifica quais são diferentes e retorna,
  • Outra dica, toda vez que você for atualizar insere um novo objeto, cria um metódo na sua própria class compara as direnças e deleta o mais velho.

Mas isso vai dar um trabalhão se for muitos objetos, se o projeto não tem camada bem definidas e outras coisas, o que eu acho menos trabalhoso é a 1º sugestão

Guitar_Men

O meu cenário é mais ou menos assim. Uma aplicação A grava um objeto na tabela referente. Ai uma aplicação B processa esse objeto e muda alguns valores dos atributos. Na aplicação A eu preciso ficar monitorando se este objeto alterou algum valor de seus atributos, em caso positivo eu notifico o usuário… Pensei em alguma coisa com cache mas esse sistema A é tão pequeno que tenho receio de estar matando uma pulga com um tiro…
Se o hibernate tivesse isso seria fantástico. Acho que vou criar esse meu criteria e no retorno dele comparo os objetos, se for diferente do que eu tenho na lista eu atualizo a lista, caso contrário apenas ignoro…
Se alguém tiver alguma idéia melhor por favor se manifeste…

Guitar_Men

UP!

Criado 27 de agosto de 2010
Ultima resposta 27 de ago. de 2010
Respostas 5
Participantes 2