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…
Consulta Criteria
5 Respostas
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
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 ??
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
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…
UP!