| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/04/2009 22:12:27
|
israel.fonseca
JavaBaby
![[Avatar]](/images/avatar/b3d2a9a2985c5a32c669cc33c885e6c8.png)
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/ |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/04/2009 10:23:05
|
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.
|
|
|
 |
|
|
|
|