1
resposta

Chave estrangeira única

Olá. Boa noite!

Me surgiu uma dúvida quando o professor implementa a anotação:

@JoinColumn (unique = true)

Em sua explicação ele mostra que a implementação apenas funciona ao criar a tabela.

Mas imaginamos um sistema ja em produção, que possui um database com diversos dados. Teria como implementar isso com o JPA, mas sem precisar criar uma nova tabela? E assim evitando que tenhamos perda de dados?

1 resposta

Olá gianmanincor, tudo bem? Peço desculpas pela demora em ti responder! Mas responder suas perguntas, usando o JPA eu desconheço uma forma de que isso funcione com sucesso, já que ele não faz a alteração usando a linguagem DDL, então nesse caso é preciso que você coloque a anotação na classe e também faça a alteração manualmente no banco de dados, algo como:

ALTER TABLE nome_da_tabela ADD CONSTRAINT nome_da_constraint_unica UNIQUE (campo_da_tabela);

Assim, vai conseguir manter os dados da forma correta, e também vai está com a aplicação e o banco de dados coerente, sendo assim numa próxima vez que precisar criar o banco de dados, já vai está com todos os relacionamentos corretos.

Espero ter ajudado!