Hibernate. mapear 1 - N bidirecional (exemplo)  XML
Índice dos Fóruns » Arquitetura de Sistemas
Autor Mensagem
ronaldorezende
JavaGuru

Membro desde: 16/03/2005 14:26:23
Mensagens: 233
Offline

Tenho a seguinte associação bidirecional: 1 cliente possui 0 ou N Orçamentos.
No mapeamento da classe cliente, tenho essa tag:

Vi esse exemplo no livro hibernate in action. Esse mapeamento implica que a tabela ORCAMENTO terá como chave primária CLIENTE_ID e POSICAO ?
Minha idéia inicial não sera essa. Caso eu queira deixar assim, como eu deveria fazer o mapemento do orcamento? Veja como fiz abaixo (considerei que orcamento possui ID):

rodrigousp
JavaEvangelist
[Avatar]

Membro desde: 09/10/2003 14:23:31
Mensagens: 379
Offline

ronaldorezende wrote:
Vi esse exemplo no livro hibernate in action. Esse mapeamento implica que a tabela ORCAMENTO terá como chave primária CLIENTE_ID e POSICAO ?


Não, significa que a tabela precisará ter dois campo:
CLIENTE_ID e POSICAO
Quando o hibernate trouxer alista do banco, ele fará algo como:
[pseudo-code]

[/pseudo-code]


ronaldorezende wrote:
Minha idéia inicial não sera essa. Caso eu queira deixar assim, como eu deveria fazer o mapemento do orcamento?

Do jeito que você fez tá bom. Mas a tabela Orcamento vai precisar de um campo POSICAO.


A propósito, o que este tópico tá fazendo em padrões, arquitetura e projetos ???

This message was edited 2 times. Last update was at 18/04/2005 19:06:10


Rodrigo di Lorenzo Lopes - blogger
[MSN] [ICQ]
ronaldorezende
JavaGuru

Membro desde: 16/03/2005 14:26:23
Mensagens: 233
Offline

Oi, deixei a pergunta aqui, pois na descrição desse fórum diz para colocar perguntas relacionadas a frameworks, entre outros assuntos.

No manual do hibernate diz que coleções com semântica de lista devem ter uma coluna de índice, do tipo inteiro. Veja: All collection mappings, except those with set and bag semantics, need an index column in the collection table - a column that maps to an array index, or List index, or Map key.... The index of an array or list is always of type integer and is mapped using the <list-index> element.
O livro hibernate in action também diz isso: A <list> mapping requires the addition of an index column to the database table.
Pelo que entendi eu seria obrigado a ter uma coluna POSICAO. Seria isso mesmo?

E quanto a chave primária? Acho que não seria muito legal ela ser composta de 2 campos, pois a classe Orcamento terá itens de orcamento, que terá outras relações. Se for ficar utilizando chaves compostas, terei relações com chaves primárias com vários atributos.
denon
What is classpath?

Membro desde: 19/04/2005 20:48:38
Mensagens: 9
Offline

primeira pergunta... os valores se repetem? se nao puderem repetirer use um Set.

se for o caso voce tambem pode usar um mapear um bag que faz a mesma coisa.


faz assim: Fazenda tem varias safras




as safras são associadas a uma fazenda




Espero que ajude.

Webwork, Hibernate, Sitemesh, Mysql, Java, J2EE
[MSN] [ICQ]
ronaldorezende
JavaGuru

Membro desde: 16/03/2005 14:26:23
Mensagens: 233
Offline

Oi,
quero usar <list>, pois minhas coleções no java são List. Você tem algum exemplo disso usando <list>?
denon
What is classpath?

Membro desde: 19/04/2005 20:48:38
Mensagens: 9
Offline

ronaldorezende wrote:Oi,
quero usar <list>, pois minhas coleções no java são List. Você tem algum exemplo disso usando <list>?



no momento so tenho este exemplo... Espero que alguem mais postar algo sobre isso para que nos possamos apreder. =D

so um perguntinha.... como voce esta declarando a lista no java? Se for como no codigo abaixo, você pode usar o bag mesmo.



Abraço,

Flavio Oliva

Webwork, Hibernate, Sitemesh, Mysql, Java, J2EE
[MSN] [ICQ]
 
Índice dos Fóruns » Arquitetura de Sistemas
Ir para:   
Powered by JForum 2.1.8 © JForum Team