Was ist der Unterschied zwischen @JoinColumn und mappedBy, wenn eine JPA @OneToMany-Zuordnung verwendet wird?

Was ist der Unterschied zwischen:

@Entity
public class Company {

    @OneToMany(cascade = CascadeType.ALL , fetch = FetchType.LAZY)
    @JoinColumn(name = "companyIdRef", referencedColumnName = "companyId")
    private List<Branch> branches;
    ...
}

und

@Entity
public class Company {

    @OneToMany(cascade = CascadeType.ALL , fetch = FetchType.LAZY, mappedBy = "companyIdRef")
    private List<Branch> branches;
    ...
}

Antworten auf die Frage(6)

Ihre Antwort auf die Frage