JPA - diferença no uso da propriedade mappedBy para definir a entidade proprietária
Qual é exatamente a diferença nas duas declarações seguintes?
B é o lado possuidor
@Entity
class A {
@Id int id;
@OneToOne
B b;
}
@Entity
class B {
@Id int id;
@OneToOne(mappedBy="b")
A a;
}
A é o lado possuidor
@Entity
class A {
@Id int id;
@OneToOne(mappedBy="a")
B b;
}
@Entity
class B {
@Id int id;
@OneToOne
A a;
}
Pensando nisso em "SQL normal" eu acho que é o mesmo que ter duas tabelas cada tendo a chave estrangeira da outra tabela. O que eu não entendo é qual é o efeito de especificar qual entidade é o lado proprietário, por exemplo, usando a propriedade 'mappedBy'. O que isso realmente consegue, pois não acredito que exista um equivalente no SQL normal.