Existe uma anotação no hibernate chamada @JoinColumn, gostaria de saber qual a diferença dessa anotação para o parâmetro mappedBy..
Existe uma anotação no hibernate chamada @JoinColumn, gostaria de saber qual a diferença dessa anotação para o parâmetro mappedBy..
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?
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.