[Resolvido] Hibernate - mapeando @OneToMany sem chave primaria  XML
Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
Autor Mensagem
camandrade
HelloWorld

Membro desde: 04/05/2010 16:41:43
Mensagens: 11
Offline

Estou migrando um sistema para Java e devido algumas particularidades do sistema preciso realizar um mapeamento sem a chave primaria.

Segue as classes abaixo:










Como faz pouco tempo que estou programando em java não sei se isso é possivel dessa forma que estou tentando ou existe outra forma de Criar essa List.


Obrigado!

This message was edited 1 time. Last update was at 29/06/2010 12:51:55

alots_ssa
JavaEvangelist

Membro desde: 19/07/2005 11:21:24
Mensagens: 469
Localização: Salvador
Offline

Vc não quer usar a fk na outra ponta é isso? Basta não colocar o mappedBy. Com isso o hibernate vai enteder que esse é um novo relaciomento e vai criar uma tabela de relacionamento para tratar a inserção e atualização dos dados. Tem problema não.

Alberto

http://alots.wordpress.com
[WWW] [MSN]
camandrade
HelloWorld

Membro desde: 04/05/2010 16:41:43
Mensagens: 11
Offline


Acho, que não consegui me expresar direito no primeiro post, segue um exemplo mais detalhado do problema que estou enfrentando.
Na verdade nem sei se existe alguma forma de fazer esse mapeamento.


Tabelas no banco de dados:





Devido a alguns problemas com volume de importação de registros no banco de dados que é realizado todo dia, tive que fazer algumas coisas um pouco "erradas" nesse sistema pra melhorar a velocidade de inserção no banco. Com isso passou a existir alguns relacionamentos entre tabelas com chaves cadidatas no lugar de chaves primarias como nesse caso que o relacionamento entre as tabelas é realizado pelo campo DEVEDOR_CPF no lugar da chave primaria DEVEDOR_CODIGO.

Ai que surge o problema eu não consegui criar uma List no bean do DEVEDOR com os telefones pois o relacionamento é feito atraves do DEVEDOR_CPF. não sei se isso é possivel, se alguem tiver alguma ideia de como fazer isso dá uma força.

Segue os Java Beans:

Obs: pra simplificar o exemplo eu desconsiderei a chave primaria composta na classe Telefone, assim como simplifiquei as tabelas no banco de dados.







Obrigado,
Cesar

partenon
JavaChild
[Avatar]
Membro desde: 27/06/2010 15:08:10
Mensagens: 103
Localização: Brno, Czech Republic
Offline

Primeiro: sua classe Telefone nao deve ter um "cpf". Deve ter uma "Pessoa", que vai ser uma ManyToOne
Depois de fazer o ajuste acima (como um ManyToOne), voce pode usar a anotacao @JoinColumn para especificar como as colunas sao ligadas. Veja se da certo


http://www.google.com/profiles/partenon
[WWW]
camandrade
HelloWorld

Membro desde: 04/05/2010 16:41:43
Mensagens: 11
Offline


Então dessa forma, eu sei que dá certo! O problema é que essas tabelas são de um sistema em produção que estou migrado apenas parte dele p/ Web com o java, assim não posso alterar a estrutura das tabelas. Isso que esta complicando, agora não sei se existe alguma forma de fazer isso sem mexer nas tabelas essa é a duvida...


Valeu...
partenon
JavaChild
[Avatar]
Membro desde: 27/06/2010 15:08:10
Mensagens: 103
Localização: Brno, Czech Republic
Offline

Mas eu nao sugeri que mudasse o banco de dados Sugeri que mudasse apenas seu codigo Java...

http://www.google.com/profiles/partenon
[WWW]
camandrade
HelloWorld

Membro desde: 04/05/2010 16:41:43
Mensagens: 11
Offline

Então, mas é isso mesmo que eu não queria fazer.. rs... pois o Id da Entity!

Bom consegui resolver o problema aqui de outra forma, atraves do Controller , mas agreço sua ajuda!


ficou assim:









Obrigado pela força!!!
partenon
JavaChild
[Avatar]
Membro desde: 27/06/2010 15:08:10
Mensagens: 103
Localização: Brno, Czech Republic
Offline

Bom que funcionou Mas eu estava sugerindo algo assim:


http://www.google.com/profiles/partenon
[WWW]
camandrade
HelloWorld

Membro desde: 04/05/2010 16:41:43
Mensagens: 11
Offline


Hum... entendi vou tentar isso tambem, por curiosidade!

Obrigado!!!


 
Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
Ir para:   
Powered by JForum 2.1.8 © JForum Team