JPA - Notação para gerar tabela com um campo que seja PK e FK ao mesmo tempo?
Boa Tarde amigos do fórum eu preciso de ajuda, estou desenvolvendo um projeto java web + jsf + primefaces + hibernate e preciso criar uma notação JPA para a seguinte estrutura SQL e não sei como proceder, alguém pode me dar uma ajuda?
CREATE TABLE Telefone(
CodCliente INT(11),
Numero VARCHAR(15),
XDEAD BOOLEAN DEFAULT FALSE,
/*FK*/
FOREIGN KEY(CodCliente) REFERENCES Cliente(CodCliente),
/*PK*/
PRIMARY KEY(CodCliente, Numero)
);
CREATE TABLE Telefone(
CodCliente INT(11),
Numero VARCHAR(15),
XDEAD BOOLEAN DEFAULT FALSE,
/*FK*/
FOREIGN KEY(CodCliente) REFERENCES Cliente(CodCliente),
/*PK*/
PRIMARY KEY(CodCliente, Numero)
);
Felipe Martins
Curtidas 0
Melhor post
Estevão Dias
07/12/2017
Olá Felipe, tudo bom?
Não sei se eu entendi bem, mas o que você está tentando implementar seria uma chave composta, na qual o cliente é identificado tanto por seu id quanto por seu número de telefone? Se esse for o caso posso demonstrar como criar uma chave composta, mas estaria faltando um entidade ou a tabela associativa.
Se esse não for o caso, recomendo que você use um id para o telefone e faça o relacionamento criando uma chave estrangeira de acordo com a cardinalidade, um cliente tem muitos telefone ou um cliente tem um telefone.
Qualquer dúvida estou por aqui :)
Não sei se eu entendi bem, mas o que você está tentando implementar seria uma chave composta, na qual o cliente é identificado tanto por seu id quanto por seu número de telefone? Se esse for o caso posso demonstrar como criar uma chave composta, mas estaria faltando um entidade ou a tabela associativa.
Se esse não for o caso, recomendo que você use um id para o telefone e faça o relacionamento criando uma chave estrangeira de acordo com a cardinalidade, um cliente tem muitos telefone ou um cliente tem um telefone.
Qualquer dúvida estou por aqui :)
GOSTEI 3
Mais Respostas
Paulo Carvalho
06/12/2017
Bom dia Felipe, tudo certo?
Cara, desculpa a minha ignorância, mas nunca ouvi falar sobre uma chave primária que é ao mesmo tempo uma chave estrangeira. De cara já me parece uma má pratica. Não sei da sua real necessidade, mas se você criasse um campo id para essa tabela de telefone como a primary key dela e o campo CodCliente como chave estrangeira não ficaria mais simples o tratamento?
Cara, desculpa a minha ignorância, mas nunca ouvi falar sobre uma chave primária que é ao mesmo tempo uma chave estrangeira. De cara já me parece uma má pratica. Não sei da sua real necessidade, mas se você criasse um campo id para essa tabela de telefone como a primary key dela e o campo CodCliente como chave estrangeira não ficaria mais simples o tratamento?
GOSTEI 2
Felipe Martins
06/12/2017
Ola Estevão Dias é isso mesmo que vc disse na primeira frase ali em cima é disso que preciso, se puder me ajudar agradeço
GOSTEI 0