| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/01/2010 12:20:14
|
Jedi_FeniX
Virtual Machine Man
![[Avatar]](/images/avatar/06ab8d9df63b836129099247301c038b.jpg)
Membro desde: 26/04/2007 14:32:30
Mensagens: 585
Offline
|
Existe alguma possibilidade de um "for" fica repetindo o mesmo objeto em um loop?
Ex:
Gostaria de saber se isso já aconteceu com alguém? Porque tive um problema deste e gostaria de identificar o que aconteceu se o problema foi do banco que retornou linhas iguais ou se foi do java?
This message was edited 1 time. Last update was at 04/01/2010 21:49:48
|
www.bau-de-dev.com |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/01/2010 12:24:06
|
Daniels
JavaGuru
Membro desde: 25/07/2008 14:19:39
Mensagens: 217
Offline
|
Dessa maneira duvido muito que exista um jeito de repetir o mesmo item do for. O "for tradicional" até teria como, mas se você fez assim sua lista contém elementos repetidos, muito provavelmente.
Depure o programa e veja o conteúdo que tem na lista, aí você tira suas dúvidas.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/01/2010 14:16:57
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 19489
Localização: Curitiba/PR
Offline
|
Também nunca vi isso.
Aliás, nunca vi uma linguagem não fazer o que a documentação diz que faz (exceto em linguagens da MS).
|
@ViniGodoy - Lattes
Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!
Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).
Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/01/2010 14:25:29
|
Jedi_FeniX
Virtual Machine Man
![[Avatar]](/images/avatar/06ab8d9df63b836129099247301c038b.jpg)
Membro desde: 26/04/2007 14:32:30
Mensagens: 585
Offline
|
A minha query não me retorna linhas repitidas, só aparece registros repetidos quando eu faço o loop no list que veio do banco.
Eu estou usando spring com jpa.
O meu código é simples.
Eu realmente não vejo nada de errado com o código acima para está repetindo registro, achei que fosse o banco, mas quando executo a query ela me retorna linhas diferentes.
|
www.bau-de-dev.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/01/2010 14:27:50
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 19489
Localização: Curitiba/PR
Offline
|
Como está implementado o método hashCode() da classe Costumer?
|
@ViniGodoy - Lattes
Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!
Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).
Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/01/2010 14:30:46
|
Jedi_FeniX
Virtual Machine Man
![[Avatar]](/images/avatar/06ab8d9df63b836129099247301c038b.jpg)
Membro desde: 26/04/2007 14:32:30
Mensagens: 585
Offline
|
Está sendo implementado desta maneira:
Sendo que o idChannel pode se repetir o idCustomer e o msisdn não, só se repete o idCustomer e o msisdn se o idChannel for diferente, por exemplo:
This message was edited 2 times. Last update was at 04/01/2010 14:40:35
|
www.bau-de-dev.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/01/2010 15:03:20
|
fantomas
GUJ Master
![[Avatar]](/images/avatar/a2bf57c3aee957f2aaf75aa84717b3be.jpg)
Membro desde: 24/04/2008 16:10:55
Mensagens: 1506
Localização: Terra (maior parte do tempo)
Offline
|
Verifique se o hibernate / JPA está retornando um resultado multrow (duplicação de linhas no JOIN).
flws
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/01/2010 15:23:22
|
Jedi_FeniX
Virtual Machine Man
![[Avatar]](/images/avatar/06ab8d9df63b836129099247301c038b.jpg)
Membro desde: 26/04/2007 14:32:30
Mensagens: 585
Offline
|
fantomas nesta classe não tem joins apessar de ter ids... Achei aonde está o erro pela sua sugestão. O erro estava na configuração do bean, ou seja, nas annotations. Abaixo segue como estava: Como tinha falado anteriormente, o idChannel se repete várias vezes e o @Id estava neste campo, quando mudei a annotation de lugar parou de repetir as linhas, mas ai acabo caido em outro problema, o idCustomer também se repete em menor quantidade que o idChannel, como resolver isso? Gostaria, se possível, se alguém com mais experiência explicasse o que aconteceu, por que as linhas repetiram quando a annotation fica no idChannel?
This message was edited 2 times. Last update was at 04/01/2010 15:25:23
|
www.bau-de-dev.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/01/2010 15:56:53
|
fantomas
GUJ Master
![[Avatar]](/images/avatar/a2bf57c3aee957f2aaf75aa84717b3be.jpg)
Membro desde: 24/04/2008 16:10:55
Mensagens: 1506
Localização: Terra (maior parte do tempo)
Offline
|
Opa!
Então...
Olhando um pouco mais o teu código notei que vc utiliza uma lista do tipo Set para retornar o resultado da consulta. Acontece que este tipo de lista não deveria permitir elementos repetidos; para isto, no seu caso, o mecanismo da lista deveria utilizar o método equals da sua entidade para atingir este objetivo.
Como vc diz que a lista possui elementos repetidos estou suspeitando que o métodos equals na sua classe deve estar com problemas; lembrando que o ideal é que sempre que vc sobreescrever o método hash sobreescreva tambem o método equals.
Tente verificar o conteúdo da tabela correspondente para se certificar que realmente as linhas se repetem. O critério para perceber se uma linha está realmente repetida é verificar sua chave primária (acho que vc sabe disso mas....), estou começando a pensar que a sua tabela possui uma chave primária composta se isto for verdade vc terá que montar uma classe correspondente a sua chave e utilizar a anotação @Embedded na sua entidade.
flws
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/01/2010 16:30:13
|
Jedi_FeniX
Virtual Machine Man
![[Avatar]](/images/avatar/06ab8d9df63b836129099247301c038b.jpg)
Membro desde: 26/04/2007 14:32:30
Mensagens: 585
Offline
|
Eu coloquei o set para o java tirar as linhas repetidas, só para ver se o problema era no java. E acabou dando certo porque o número de registro retornado era diferente da query.
E a minha tabela usa pk composta sim. Vou ter que fazer uma classe para essa PK. Eu só tenho dúvida nesta parte como ficaria o mapeamento desta classe com a entidade?
|
www.bau-de-dev.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/01/2010 17:02:45
|
fantomas
GUJ Master
![[Avatar]](/images/avatar/a2bf57c3aee957f2aaf75aa84717b3be.jpg)
Membro desde: 24/04/2008 16:10:55
Mensagens: 1506
Localização: Terra (maior parte do tempo)
Offline
|
Dá uma olhada no conteúdo deste link para vc ter uma idéia.
http://www.java2s.com/Tutorial/Java/0355__JPA/EmbeddedCompoundPrimaryKey.htm
Vale a pena explorar mais esta tema em livros / tutoriais
flws
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/01/2010 21:48:58
|
Jedi_FeniX
Virtual Machine Man
![[Avatar]](/images/avatar/06ab8d9df63b836129099247301c038b.jpg)
Membro desde: 26/04/2007 14:32:30
Mensagens: 585
Offline
|
Valeu pela ajuda, está tudo funcionando agora.
Obrigado a todos!
|
www.bau-de-dev.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/01/2010 09:31:20
|
marcobiscaro2112
JWizard
Membro desde: 01/12/2008 11:56:04
Mensagens: 2408
Localização: São Paulo - SP
Offline
|
ViniGodoy wrote:Também nunca vi isso.
Aliás, nunca vi uma linguagem não fazer o que a documentação diz que faz (exceto em linguagens da MS).
Bem observado...
|
Marco Biscaro.
Seja livre!
Você sabia que provavelmente há milhares de arquivos duplicados no seu computador?
Ei... você está usando DefaultTableModel no seu projeto?? Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295 |
|
|
 |
|
|