Hibernate - mais de um mapeamento para uma classe.  XML
Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
Autor Mensagem
Rafael_1
HelloWorld

Membro desde: 08/09/2008 14:19:20
Mensagens: 10
Offline

Pessoal, tenho uma classe Data_Hora.

Tenho mais três classe que tem um relacionamento "tem um" com a classe Data_Hora.

Posso fazer mais de um mapeamento para a classe Data_Hora, se posso como fazer para usar determinado mapeamento?


Para cada classe que vou utilizar um objeto Data_hora gostaria de definir um nome especifico para a tabela que sera gerada! preciso criar mais de um mapeamento pra isso?


Agradeço desde já!


This message was edited 2 times. Last update was at 16/09/2008 09:52:09

lmprates
JavaChild
[Avatar]

Membro desde: 18/08/2006 11:43:29
Mensagens: 127
Localização: Porto Alegre - RS
Offline

Rafael,

você poderia explicar melhor, acho que ficou um pouco confuso.

Poste o código de suas classes tb (não esqueça das tags [ code ] )

------
Leonardo Prates
Bacharel em Sistemas de Informação
Sun Certified Java Associate
[MSN]
Rafael_1
HelloWorld

Membro desde: 08/09/2008 14:19:20
Mensagens: 10
Offline

São duas classe que utilizam Data_Hora como atributo, eu preciso que cada atributo gere uma nova tabela como um nome distinto..


Classe Entrada






- Entrada e Saida são entidades.
-Tenho uma associação 1:1 com a entidade DataHora, mas pra cada atributo deste gostaria de gerar uma nova tabela, ex: TAB_DATA_HORA_VALIDACAO, TAB_SAIDA_DEFITIVA e assim por diante.


Como faço isso?
preciso de mais de um mapemaneto pra classe Data_Hora?


-no mapeamento da classe Data_Hora tenho a tag tabble="" devo omiti-la?


Tenho varias classes que utilizam a mesma tipo de entidade como atributo, mas tem significados diferentes, como Hora da Entrada e Hora da Saida, gostaria de ter uma tabela para cada.
essas são minhas duvidas, espero que tenha fiado mais claro. rs



lmprates
JavaChild
[Avatar]

Membro desde: 18/08/2006 11:43:29
Mensagens: 127
Localização: Porto Alegre - RS
Offline

Entendi.

Mas nesse caso você não precisa criar uma outra tabela, e sim um atributo dentro de sua tabela Entrada, chamado dataHoraValidacao, por exemplo.
Crie quantos atribudos do mesmo tipo você precisar, mas se é realmente 1:1, não deve ser criada outra tabela, e sim uma coluna dentro da mesma tabela.
Depois mapeie com a anotação @OneToOne, informando a @JoinColumn que você criou.

[]'s

------
Leonardo Prates
Bacharel em Sistemas de Informação
Sun Certified Java Associate
[MSN]
Rafael_1
HelloWorld

Membro desde: 08/09/2008 14:19:20
Mensagens: 10
Offline

Faço o mapeamento com xml.
Como posso fazer isso?


Olha como fiz a associação no mapeamento da minha classe Entrada



Rafael_1
HelloWorld

Membro desde: 08/09/2008 14:19:20
Mensagens: 10
Offline

Meu relacionamento no hibernate é definido atraves de chave primaria compartilhada,

Então a chave primaria de Data_Hora é a mesma chave definida para uma Entrada (um codigo de barras como Chave primaria).

Isso não permite que eu tenha duas chaves iguais dentro da mesma tabela.


"Entrada" transefere dados após uma validação pra tabela "Saida", isso implica que não tenho como guardar essas datas na mesma tabela "Data_Hora" pois já existira uma chave primaria referente a uma "Entrada".


que zica. estou em um beco sem saida.

A unica solução que me veio a mente é criar uma classe para cada tipo de data.

Classes:

Data_Entrada
Data_Saida
Data_Validação


[edit: Estou pensando em um mapeamento de Herança, classe DataHora e as subclasses concretas HoraEntrada, HoraSaida, HoraValidação]
Será que fica menos feio?

This message was edited 2 times. Last update was at 16/09/2008 12:56:38

lmprates
JavaChild
[Avatar]

Membro desde: 18/08/2006 11:43:29
Mensagens: 127
Localização: Porto Alegre - RS
Offline

quais informações você precisa guardar dentro do objeto DataHora além da data e da hora logicamente ?

[]'s

------
Leonardo Prates
Bacharel em Sistemas de Informação
Sun Certified Java Associate
[MSN]
Rafael_1
HelloWorld

Membro desde: 08/09/2008 14:19:20
Mensagens: 10
Offline

lmprates, obrigado pela força cara!
Eu já resolvi o problema.

Fiz uma associação de chave estrangeira. Deu certinho!

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