| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/04/2004 20:56:17
|
ana_abrantes
JavaGuru
![[Avatar]](/images/avatar/c8b958be3f6282eb1e3fa.gif)
Membro desde: 29/08/2003 15:44:09
Mensagens: 238
Localização: São Paulo
Offline
|
Estou usando o Hibernate num pequeno projeto e já fiz alguns relacionamentos, one-to-many e many-to-one com algumas tabelas.
Mas tem uma tabela que tem um relacionamento recursivo que não consegui fazer funcionar ainda.
Exemplo do caso que estou com problema:
Tabela Pessoa
Codigo int(11)
Nome varchar(40)
Codigo_pai int(11)
Codigo: 1, Nome: Fulano de Tal, Codigo_pai: 0
Codigo: 2, Nome: José da Silva, Codigo_pai: 1
São 2 problemas que preciso resolver:
1) como fazer esse relacionamento no hibernate
2) como permitir que em alguns casos ele aceite que não existe um codigo_pai
Se alguém puder ajudar, agradeço muito, pois já pesquisei em vários lugares e tentei de várias maneiras e não deu certo.
|
Ana
SCJP 1.4 - SCWCD 1.4 |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/04/2004 22:51:30
|
ricardolecheta
GUJ Master
![[Avatar]](/images/avatar/b59c67bf196a4758191e42f76670ceba.jpg)
Membro desde: 17/05/2003 13:42:10
Mensagens: 1486
Localização: Curitiba
Offline
|
basta fazer um many-to-one para a própria classe.
|
Ricardo R. Lecheta
Livro - Google Android (português)
http://www.livroandroid.com.br/
http://livroandroid.blogspot.com/
http://www.livetouch.com.br/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/04/2004 08:42:38
|
ana_abrantes
JavaGuru
![[Avatar]](/images/avatar/c8b958be3f6282eb1e3fa.gif)
Membro desde: 29/08/2003 15:44:09
Mensagens: 238
Localização: São Paulo
Offline
|
Foi exatamente o que fiz e não deu certo !!!
|
Ana
SCJP 1.4 - SCWCD 1.4 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/04/2004 08:45:16
|
TedLoprao
Virtual Machine Man
![[Avatar]](/images/avatar/c8604bc33f4c112715031.jpg)
Membro desde: 09/05/2003 00:32:03
Mensagens: 607
Offline
|
Mas deu algum erro???
Um problema q tive foi quando, por exemplo o auto-relacionamento era com o próprio objeto (a base de dados q estou trabalhando é de um sistema legado e nesse sistema esse tipo de coisa podia acontecer)...
Não sei se existe uma maneira de contornar esse problema!!
|
Rodrigo Klein
----------------------------------------------------
Java is the best |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/04/2004 09:27:01
|
ana_abrantes
JavaGuru
![[Avatar]](/images/avatar/c8b958be3f6282eb1e3fa.gif)
Membro desde: 29/08/2003 15:44:09
Mensagens: 238
Localização: São Paulo
Offline
|
Erro não mas não funciona como esperado.
Acontecem 2 coisas erradas:
Primeiro, não aceita que algum registro tenha o campo codigo_pai sem um correspondente, ou seja, com valor=0.
Segundo, ao invés de trazer o registro correspondente, traz o mesmo, como se o codigo_pai estivesse indicando o próprio registro!
|
Ana
SCJP 1.4 - SCWCD 1.4 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/04/2004 19:18:48
|
ana_abrantes
JavaGuru
![[Avatar]](/images/avatar/c8b958be3f6282eb1e3fa.gif)
Membro desde: 29/08/2003 15:44:09
Mensagens: 238
Localização: São Paulo
Offline
|
Eis o mapeamento desta classe para vocês me entenderem melhor:
pessoaPai teria que me retorna o registro correspondente ao pai e pessoaFilho foi colocado para fazer o inverso, ou seja, trazer todos que tiverem um mesmo pai.
|
Ana
SCJP 1.4 - SCWCD 1.4 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/04/2004 19:28:57
|
louds
Moderador
![[Avatar]](/images/avatar/1e48c4420b7073bc11916c6c1de226bb.jpg)
Membro desde: 29/04/2003 23:09:15
Mensagens: 4061
Localização: São Paulo
Offline
|
Ana vc ta com o mapping errado, comparei com um caso onde tive o mesmo problema e creio que o correto seja:
Note que a diferença esta em many-to-one -> column
|
http://www.kumpera.net/blog/
http://www.mono-project.com/
"Each individual should work for himself. People will not sacrifice themselves for the company. They come to work at the company to enjoy themselves."
Soichiro Honda |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/04/2004 21:11:27
|
ana_abrantes
JavaGuru
![[Avatar]](/images/avatar/c8b958be3f6282eb1e3fa.gif)
Membro desde: 29/08/2003 15:44:09
Mensagens: 238
Localização: São Paulo
Offline
|
Valeu, louds, obrigada, agora está trazendo o pai correspondente!!!
Só que no caso de eu não ter um pai, ou seja, codigo_pessoa_pai = 0, está dando exception... tem como resolver isso também?
Senão vai ficar um relacionamento infinito, concorda?
|
Ana
SCJP 1.4 - SCWCD 1.4 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/04/2004 23:29:54
|
ricardolecheta
GUJ Master
![[Avatar]](/images/avatar/b59c67bf196a4758191e42f76670ceba.jpg)
Membro desde: 17/05/2003 13:42:10
Mensagens: 1486
Localização: Curitiba
Offline
|
ana_abrantes wrote:Valeu, louds, obrigada, agora está trazendo o pai correspondente!!!
Só que no caso de eu não ter um pai, ou seja, codigo_pessoa_pai = 0, está dando exception... tem como resolver isso também?
Senão vai ficar um relacionamento infinito, concorda?
porque fica codigo_pessoa_pai = 0? deveria ficar "null". Então o objeto pessoaPai simplesmente estará null se não existir pai.
|
Ricardo R. Lecheta
Livro - Google Android (português)
http://www.livroandroid.com.br/
http://livroandroid.blogspot.com/
http://www.livetouch.com.br/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/04/2004 19:39:40
|
ana_abrantes
JavaGuru
![[Avatar]](/images/avatar/c8b958be3f6282eb1e3fa.gif)
Membro desde: 29/08/2003 15:44:09
Mensagens: 238
Localização: São Paulo
Offline
|
Se eu deixar o atributo pessoaPai (que é da classe Pessoa) com 'null', dá NullPointerException na hora que eu mando executar o método 'save' em Pessoa...
|
Ana
SCJP 1.4 - SCWCD 1.4 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/04/2004 22:44:32
|
ricardolecheta
GUJ Master
![[Avatar]](/images/avatar/b59c67bf196a4758191e42f76670ceba.jpg)
Membro desde: 17/05/2003 13:42:10
Mensagens: 1486
Localização: Curitiba
Offline
|
ana_abrantes wrote:Se eu deixar o atributo pessoaPai (que é da classe Pessoa) com 'null', dá NullPointerException na hora que eu mando executar o método 'save' em Pessoa... 
impossível
Se vc fizer assim, da NullPointer ? Veja a linha do NullPointer, pode ser em outro lugar, manda o stackTrace
|
Ricardo R. Lecheta
Livro - Google Android (português)
http://www.livroandroid.com.br/
http://livroandroid.blogspot.com/
http://www.livetouch.com.br/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/04/2004 09:04:34
|
ana_abrantes
JavaGuru
![[Avatar]](/images/avatar/c8b958be3f6282eb1e3fa.gif)
Membro desde: 29/08/2003 15:44:09
Mensagens: 238
Localização: São Paulo
Offline
|
Foi exatamente na linha do save...
Está mais ou menos assim, é que eu não estou com o código aqui agora...
Só à noite que vou poder mexer nele de novo.
O campo PESSOA_PAI do form é um select com todas as pessoas e eu acrescentei uma com o código 0 e descrição em branco para este caso de não ter o pai.
|
Ana
SCJP 1.4 - SCWCD 1.4 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/04/2004 11:49:07
|
ana_abrantes
JavaGuru
![[Avatar]](/images/avatar/c8b958be3f6282eb1e3fa.gif)
Membro desde: 29/08/2003 15:44:09
Mensagens: 238
Localização: São Paulo
Offline
|
Verifiquei e é isto mesmo que eu tinha postado anteriormente.
Sei lá, acho que se eu tiver que criar uma pessoa com código zero é estranho demais!
Tem mais alguma sugestão para me dar, Ricardo... louds... ?
|
Ana
SCJP 1.4 - SCWCD 1.4 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/04/2004 11:53:33
|
urubatan
Moderador
![[Avatar]](/images/avatar/fe9fc289c3ff0af142b6d3bead98a923.jpg)
Membro desde: 21/09/2002 10:31:26
Mensagens: 2481
Localização: Porto Alegre/RS
Offline
|
troca o tipo no objeto para Integer em vez de int que funciona direitinho, ai quando não tiver nada associado fica como null, que representa exatamente isto.
PS.: desculpe se ja sugeriram isto, mas realmente não li todas as mensagens da thread.
|
[]'s
Rodrigo Urubatan
http://www.urubatan.com.br
Melhor livro de RoR do brasil: http://livro.urubatan.com.br
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 08/05/2007 01:55:45
|
slmasked
Smalltalk
Membro desde: 08/05/2007 01:53:04
Mensagens: 1
Offline
|
estou com o mesmo problema da ana.....
alguém poderia dar umas dicas...urgente..
|
|
|
 |
|
|