Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Qual a diferença entre JoinColumn e mappedBy

Existe uma anotação no hibernate chamada @JoinColumn, gostaria de saber qual a diferença dessa anotação para o parâmetro mappedBy..

3 respostas

Olá Alexandre,

a anotação @JoinColumn indica que a classe na qual você está utilizando-a é a dona ou o lado forte do relacionamento. Isso apenas adciona uma coluna estrangeira ao lado forte.

Já o parametro mappedBy que fica dentro do @OneToMany é usado no lado fraco do relacionamento.

O mappedBy faz com que o relacionamento fique bidirecional.

Abraços.

Obrigado Victor. Na aula, o instrutor diz que com o mappedBy se tem acesso ao dono do relacionamento no objeto que é possuído. Como eu teria o acesso a conta(owner) a partir da classe me movimentação?

solução!

Vamos lá:

temos uma relação @ManyToOne de movimentações para conta.

O lado das movimentações é o lado forte do relacionamento, então é automáticamente criada uma coluna na tabela Movimentação chamada conta_id.

Esse é o nome padrão no qual ela vem, mas você pode usar a anotação JoinColumn para especificar um nome ou conteúdo diferente para essa coluna. Note que isso não é recomendado.