Here is the two classes that I’m use to express a bidirectional OneToMany relationship.
Class Contact {
@OneToMany
public Set getPhoneNumbers() {
return phoneNumbers;
}
}
Class PhoneNumber{
@ManyToOne
public Contact getContact() {
return contact;
}
}
Hibernate is creating a join table (which I think is good for my need)
contact_phonenumber -Contact_id -phoneNumbers_id
but why is it creating this extra join column (contact_id) on the phoneNumber table
phonenumber -id -contact_id -...
Isn’t the join table enough?
More over, when I save a phonenumber or contact, the join table is updated but not the join column. So why is this join column here?
Thanks for your help.
I found a solution:
Class Contact { @OneToMany(mappedBy="contact", targetEntity=PhoneNumber.class, orphanRemoval=false) public Set getPhoneNumbers() { return phoneNumbers; } }Class PhoneNumber{ @ManyToOne @JoinTable(name="t_join_contact_phonenumber", joinColumns=@JoinColumn(name="PHONENUMBER_ID"), inverseJoinColumns=@JoinColumn(name="CONTACT_ID")) public Contact getContact() { return contact; } }Now, Hibernate is creating the join table only
Thanks.