Comparando coleções com hibernate  XML
Índice dos Fóruns » Ferramentas, Frameworks e Utilitários
Autor Mensagem
flaviomreis
Debugger
[Avatar]
Membro desde: 04/07/2006 09:20:35
Mensagens: 56
Offline

Bom dia a todos!

Tenha as seguinte entidades:


devidamente mapeados com os hbms:


O que quero é obter instancias de Imagem por evento e classificador. Consigo retornar os classificadores de uma imagem "imagem.getClassificadores()", as imagens de um classificador "classificador.getImagens()", as imagens que casam com uma coleção de eventos:


O que não estou conseguindo é retornar as imagens em que os seus classificadores contenham uma dada coleção de classificadores. Exemplo:

classificadores -> c1, c2, c3, c4, c5

imagens -> img1, img2, img3

(img1 -> c1, c2, c3, c4), (img2 -> c1, c2, c3), (img3 -> c1, c4)

Digamos que eu queira as imagens que tenham como classificadores c1 e c4, deveria retornar (img1 e img3). Para a coleção de classificadores c2 e c4, deveria retornar (img1). Para a coleção de classificadores c1, deveria retornar (img1, img2 e img3).

Como resolvo isto?

Muito obrigado pela atenção amigos.

Flávio Menezes dos Reis
Bacharel em Sistemas de Informação
Terra de Areia - RS
[MSN] [ICQ]
Filipe Sabella
GUJ Expert

Membro desde: 12/03/2003 11:25:57
Mensagens: 4680
Offline


Former LIPE.
[ICQ]
flaviomreis
Debugger
[Avatar]
Membro desde: 04/07/2006 09:20:35
Mensagens: 56
Offline

Obrigado pela atenção LIPE, mas eu já havia tentando isto e retorna o seguinte:


Meu código:


Creio que o problema estaja no Resctrictions.in, pois creio que ele verifique se UM valor está em uma coleção, e não se uma coleção está contida em outra.

Que coisa chata! Novamente obrigado pela atenção.

Flávio Menezes dos Reis
Bacharel em Sistemas de Informação
Terra de Areia - RS
[MSN] [ICQ]
Filipe Sabella
GUJ Expert

Membro desde: 12/03/2003 11:25:57
Mensagens: 4680
Offline

Ah, faz sentido, apressado eu.
Vou continuar a pesquisa aqui.

Hm, só encontrei gambiarras fazendo mapeamento da tabela da intersecção, no seu caso ImagemClassificada.
Então seria possível fazer a query que sugeri.

Mas deve ter outro jeito.

Former LIPE.
[ICQ]
Paulo Silveira
Administrador
[Avatar]

Membro desde: 07/08/2002 18:38:50
Mensagens: 4204
Localização: São Paulo
Offline

lendo o codigo na diagonal, me parece que voce esta precisando de Disjunction/Conjunction. Deve resolver.

http://blog.caelum.com.br twitter: @paulo_caelum


[Email] [WWW]
Filipe Sabella
GUJ Expert

Membro desde: 12/03/2003 11:25:57
Mensagens: 4680
Offline

Poxa Paulo Nunca tinha usado esses.
Restrictions.disjunction()

Apesar de achar bem melhor que a outra solução, ainda acho bem feio também.

Former LIPE.
[ICQ]
flaviomreis
Debugger
[Avatar]
Membro desde: 04/07/2006 09:20:35
Mensagens: 56
Offline

Hum... vou tentar! Já retorno...

Flávio Menezes dos Reis
Bacharel em Sistemas de Informação
Terra de Areia - RS
[MSN] [ICQ]
flaviomreis
Debugger
[Avatar]
Membro desde: 04/07/2006 09:20:35
Mensagens: 56
Offline

Não funciona também, dá o mesmo erro anterior... Acho que novamente é problema em Restrictions, pois deste jeito estou tentando igualar uma coleção (classificadores), com uma instancia... Restrictions.eq( "classificadores", classificador1 )...

Vou continuar na pesquisa aqui também.

Valeu a força.

Flávio Menezes dos Reis
Bacharel em Sistemas de Informação
Terra de Areia - RS
[MSN] [ICQ]
Paulo Silveira
Administrador
[Avatar]

Membro desde: 07/08/2002 18:38:50
Mensagens: 4204
Localização: São Paulo
Offline

tentativa do Orseni:


http://blog.caelum.com.br twitter: @paulo_caelum


[Email] [WWW]
flaviomreis
Debugger
[Avatar]
Membro desde: 04/07/2006 09:20:35
Mensagens: 56
Offline

O pior é que não entendi esta tentativa do Orseni... , o que significa colecao1 e colecao2, tenho uma colecao de classificadores que pretendo verificar se está contida em na coleção de classificadores de cada imagem...

Fico no aguardo. Obrigado

Flávio Menezes dos Reis
Bacharel em Sistemas de Informação
Terra de Areia - RS
[MSN] [ICQ]
flaviomreis
Debugger
[Avatar]
Membro desde: 04/07/2006 09:20:35
Mensagens: 56
Offline

O meu trecho de código ficou assim:



Mas deu o erro abaixo, creio que ele montou um sql errado, pois está usando somente a tabela classificador.



Obrigado

Flávio Menezes dos Reis
Bacharel em Sistemas de Informação
Terra de Areia - RS
[MSN] [ICQ]
Axel-Foley
Thread.start()

Membro desde: 03/11/2004 23:16:58
Mensagens: 48
Offline

então não entendi direito...
vc tem uma colecao de classificadores e quer todas as imagens que tenham essa colecao entre a sua colecao de classificadores?
flaviomreis
Debugger
[Avatar]
Membro desde: 04/07/2006 09:20:35
Mensagens: 56
Offline

Ops... Desculpe a demora... Tive que resolver alguns problemas...

É exatamente isto, quero obter todas as imagens em que sua coleção de classificadores tenham uma dada coleção de classificadores.

Valeu!

Flávio Menezes dos Reis
Bacharel em Sistemas de Informação
Terra de Areia - RS
[MSN] [ICQ]
 
Índice dos Fóruns » Ferramentas, Frameworks e Utilitários
Ir para:   
Powered by JForum 2.1.8 © JForum Team