1
resposta

Relacionamentos @*ToOne e @*ToMany

Olá, creio que tenha me perdido nessa explicação de relacionamento de tabelas com as anotações do JPA.

Pelo que entendi as anotações dizem aos bancos de dados quantas vezes um objeto pode constar em cada coluna. Se eu colocar @OneToOne, por exemplo, só pode ter um objeto em uma coluna atrelado a apenas um objeto na outra coluna.

Veja se esses exemplos estão certo. Em uma tabela de clientes o @OneToOne seria como a variável contaCorrente. Só pode existir uma ContaCorrente para cada Cliente. E supomos que cada Cliente só pode ter apenas uma ContaCorrente. Exemplo de @OneToMany seria a variável endereco (um cliente pode ter um endereço em SP e outro em BH) mas o mesmo endereço não pode pertencer a dois clientes. Exemplo de @ManyToOne poderia ser de um executivoDeContas (que cuida de vários clientes, porém dois executivos não podem cuidar do mesmo ciente). E @ManyToMany poderia ser a variável projetos, no qual um ou mais clientes podem pertencer ao mesmo projeto. E um cliente pode ter vários projetos. Faz sentido esses exemplos ?

Nos relacionamentos @ToOne é gerado automaticamente uma chave estrangeira e nos relacionamentos @ToMany é feito apenas um Join ?!

1 resposta

Olá Enzo

Os exemplos que você elaborou sobre os relacionamentos estão corretos ;)