JPQL - Buscando um conjunto dentro de outro.  XML
Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
Autor Mensagem
israel.fonseca
JavaBaby
[Avatar]

Membro desde: 13/10/2007 15:11:19
Mensagens: 88
Localização: Tubarão - SC
Offline

Olá assumindo o seguinte caso:

Um Fluxo tem uma conjunto de Categorias.



Como faço para buscar um fluxo que contenha pelo menos 1 determinada categoria? Por exemplo se eu tenho:

Fluxo 1
Possui categorias [a,b,c]

Fluxo 2
Possui categorias [a,b]

Fluxo 3
Possui categorias [a]

E para o meu método de busca eu passo um Set com as categorias a e b.



E o retorno me deve ser uma lista contendo os Fluxos 1 e 2, já que ambos possuem as categorias "a" e "b". Mas caso eu passasse um set com apenas a categoria "a", ele me retornaria os 3 fluxos já que todos possuem ao menos a categoria "a". E caso eu passase "a" e "c" para o método apenas o Fluxo 1 seria retornado, pois os fluxos 1 e 2 não possuem a categoria "c".

Como posso fazer isso de forma eficiente numa JPQL?

Obrigado,

Israel


http://israelfonseca.blogspot.com/
[MSN]
cassionandi
Debugger

Membro desde: 30/01/2007 12:58:52
Mensagens: 62
Localização: Tubarão/SC
Offline

Olá caro Israel.

Veja como é simples retornar os valores que você quer através de uma pura query sql (oracle).







Fiz isso supondo que você tem uma tabela FLUXO, FLUXO_CATEGORIA e CATEGORIA. Sendo FLUXO_CATEGORIA uma entidade associativa, ela contém os Códigos dos Fluxos e das Categorias (que serão o parametro principal da query).

Através da operação IN é possível obter o resultado esperado, ou seja, nesse caso teriamos os Fluxos que tem a categoria de código 1 e 2.

Como fazer isso em JPQL já é algo além dos meus conhecimentos.


Abraço e boa sorte.
[MSN]
 
Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
Ir para:   
Powered by JForum 2.1.8 © JForum Team