| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/03/2010 11:08:18
|
jeroqueiroz
Virtual Machine Man
![[Avatar]](/images/avatar/945beadd1794ee1affd8a65dad8b844e.png)
Membro desde: 15/05/2007 22:07:24
Mensagens: 522
Localização: Bahia
Offline
|
Caros,
Estou com uma query onde traz os registros corretamente, porém preciso verificar agora se estes registros trazidos pela query satisfaz uma condição.
Pensei em ter uma função que passo o resultado desta query como parametro e retorne uma lista com os registros que satisfazem esta condição.
Alguma dica de função que recebe uma lista e retorna uma lista ou alguma outra dica de como fazer isso?
qualquer ajuda e valida..
desde já agradeço.
|
Att,
Jeremias Santos - http://twitter.com/jeroqueiroz
JavaC - Java Community - http://www.javac.com.br
Twitter Fórum JavaC - http://twitter.com/javac_forum |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/03/2010 11:44:03
|
vagner.oliveira2
Debugger
Membro desde: 31/08/2007 09:43:32
Mensagens: 57
Offline
|
Você não consegue retornar esta lista já em seu select com uma clausula where?
|
SCJP 5.0
SCWCD 5.0
SCBCD 5.0 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/03/2010 12:51:58
|
sergiotaborda
GUJ Expert
![[Avatar]](/images/avatar/b4a0e0fbaa9f16d8947c49f4e610b549.png)
Membro desde: 22/03/2005 20:57:48
Mensagens: 3433
Offline
|
jeroqueiroz wrote:Caros,
Estou com uma query onde traz os registros corretamente, porém preciso verificar agora se estes registros trazidos pela query satisfaz uma condição.
Pensei em ter uma função que passo o resultado desta query como parametro e retorne uma lista com os registros que satisfazem esta condição.
Alguma dica de função que recebe uma lista e retorna uma lista ou alguma outra dica de como fazer isso?
qualquer ajuda e valida..
Supondo que a condição não pode ser testada via SQL de forma a filtrar os objetos no banco, a forma padrão de fazer isto é usar um filtro assim
Quem passa no filtro é quem fizer o método accept retornar true. Quem passar é adicionado ao resultado.
Este modelo permite que vc use qualquer tipo de coleção, não apenas list.
Se vc quer apenas remover quem não passar o filtro e souber que a coleção é editável, vc pode fazer assim (que é mais rápido)
Por exemplo, obter apenas nomes começados por A
This message was edited 1 time. Last update was at 08/03/2010 12:52:33
|
Criando sua própria API de Validação
Blog do MiddleHeaven |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/03/2010 13:58:39
|
jeroqueiroz
Virtual Machine Man
![[Avatar]](/images/avatar/945beadd1794ee1affd8a65dad8b844e.png)
Membro desde: 15/05/2007 22:07:24
Mensagens: 522
Localização: Bahia
Offline
|
O que preciso fazer pode ser feito pelo banco mesmo....
Não vejo a possibilidade de tratar na própria query, devido este query q tenho ele busca em uma tabela de histórico, onde um mesmo documento pode ter vários registros sendo que tenho q ver se o mais atual esta com um determinado status (tipo = 1), sendo que se o maior registro deste documento for com status (tipo = 2) ele não traz, ou seja não posso colocar na query q ele pegue com tipo =1 porque ele vai trazer porém não será o maior registro, pois o maior já esta com o status tipo=2.
Então pensei em trazer os maiores registro passar pra uma função que verifica se o satus dos trazidos e igual a 1.
mais alguma dica..
|
Att,
Jeremias Santos - http://twitter.com/jeroqueiroz
JavaC - Java Community - http://www.javac.com.br
Twitter Fórum JavaC - http://twitter.com/javac_forum |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/03/2010 14:18:24
|
sergiotaborda
GUJ Expert
![[Avatar]](/images/avatar/b4a0e0fbaa9f16d8947c49f4e610b549.png)
Membro desde: 22/03/2005 20:57:48
Mensagens: 3433
Offline
|
jeroqueiroz wrote:O que preciso fazer pode ser feito pelo banco mesmo....
Não vejo a possibilidade de tratar na própria query, devido este query q tenho ele busca em uma tabela de histórico, onde um mesmo documento pode ter vários registros sendo que tenho q ver se o mais atual esta com um determinado status (tipo = 1), sendo que se o maior registro deste documento for com status (tipo = 2) ele não traz, ou seja não posso colocar na query q ele pegue com tipo =1 porque ele vai trazer porém não será o maior registro, pois o maior já esta com o status tipo=2.
Então pensei em trazer os maiores registro passar pra uma função que verifica se o satus dos trazidos e igual a 1.
mais alguma dica..
Porque vc não pode pedir o maior registro cujo tipo é 1 ? (Select * from T where tipo = 1 and date in select max(date) from T)
|
Criando sua própria API de Validação
Blog do MiddleHeaven |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/03/2010 07:45:57
|
jeroqueiroz
Virtual Machine Man
![[Avatar]](/images/avatar/945beadd1794ee1affd8a65dad8b844e.png)
Membro desde: 15/05/2007 22:07:24
Mensagens: 522
Localização: Bahia
Offline
|
Porque ele vai encontrar este registro que to procurando, sendo que na verdade o que tem a maior data não é do tipo 1, e sim do tipo 3.
Ou seja porque o registro tipo 1 existe.. devido ser uma tabela de histórico.
|
Att,
Jeremias Santos - http://twitter.com/jeroqueiroz
JavaC - Java Community - http://www.javac.com.br
Twitter Fórum JavaC - http://twitter.com/javac_forum |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/03/2010 14:42:47
|
clone_zealot
JavaEvangelist
Membro desde: 21/11/2004 16:40:00
Mensagens: 424
Offline
|
Que banco vc utiliza?
Caso for Oracle, vc pode tentar usar as funções analíticas do Oracle.
Funções analíticas, diferentemente de comandos SQL normal, utilizam o resultado de uma query e fazem filtros nos resultados.
É uma funcionalidade muito interessante e muito útil.
Link:
http://www.orafaq.com/node/55
|
"Não amo a espada por sua agudez,
não amo a flecha por sua rapidez,
não amo o homem por sua glória,
amo sim, tudo o que eles defendem"
Faramir, Príncipe de Ithilien |
|
|
 |
|
|