Dúvidas com JPA com MySql  XML
Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
Autor Mensagem
clarinetabest
JavaChild

Membro desde: 26/04/2008 14:20:00
Mensagens: 121
Offline

Olá pessoal, tenho a seguinte situação: PRODUTOS * ---- 0..1 PROMOÇÕES.

como ficariamminhas tabelas? no mysql quando coloco uma fk (ID_PROMOCOES) do tipo int em produtos, o mesmo não aceita null, mais o produto pode ou não ter uma promoção, assim sendo as vezes esta fk em produtos irá ficar vazia, só que o bd não aceita por o campo ser int, o que fazer????????
hodrigohamalho
JavaChild
[Avatar]

Membro desde: 05/10/2008 11:32:24
Mensagens: 132
Offline

você tem que ter uma fk de produtos em promoções. E não o contrario.

Rodrigo Ramalho



"Eu tenho a humildade de aprender com as pessoas, e nao a arrogância de ensinar o que eu não sei..."
[Email]
Andre Brito
JWizard

Membro desde: 21/07/2007 17:44:31
Mensagens: 2485
Localização: Paraná
Offline

hodrigo, acho que ele está certo... Produtos tem FK de Promoções.

Quando você lida com relações 1 para N com JPA, você pode usar uma JoinTable ou JoinColumn. Qual destas você está usando?

Dá uma olhada nesta página.

Como organizar o GUJ.
Meu Twitter.
Meu blog.
Future proofing means making code easy to change, not trying to anticipate every possible way your code might need to change.
[WWW]
hodrigohamalho
JavaChild
[Avatar]

Membro desde: 05/10/2008 11:32:24
Mensagens: 132
Offline

verdade, não me atentei direito a relação...

Rodrigo Ramalho



"Eu tenho a humildade de aprender com as pessoas, e nao a arrogância de ensinar o que eu não sei..."
[Email]
ccllss
JavaBaby

Membro desde: 26/09/2007 10:01:43
Mensagens: 75
Offline

clarinetabest wrote:Olá pessoal, tenho a seguinte situação: PRODUTOS * ---- 0..1 PROMOÇÕES.

como ficariamminhas tabelas? no mysql quando coloco uma fk (ID_PROMOCOES) do tipo int em produtos, o mesmo não aceita null, mais o produto pode ou não ter uma promoção, assim sendo as vezes esta fk em produtos irá ficar vazia, só que o bd não aceita por o campo ser int, o que fazer????????


Clarinetabest,

Como o banco não aceita null nessa FK de promoções em produto ? Deve aceitar sim! A menos que essa sua FK não seja uma FK e sim uma PFK, que neste caso a FK de promoções faz parte da chave primária da tabela "produtos".

Se for uma PFK você tem um relacionamento forte entre as tabelas "promocoes" e "produtos". O que você deve fazer é um relacionamento fraco entre elas onde a FK ID_PROMOCOES possa ser nula na tabela produtos.

Veja uma DDL para Postgres que mostra que isso é possível e algumas instruções DML para inserção de dados nas tabelas e logo abaixo as definições das classes Produto e Promocao.



@braços

Cleiton L. Siqueira - Analista de Sistemas
Bacharel Ciência da Computação
 
Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
Ir para:   
Powered by JForum 2.1.8 © JForum Team