Jaka jest różnica między asocjacjami jednokierunkowymi i dwukierunkowymi?
Ponieważ wszystkie tabele wygenerowane w bazie danych są takie same, jedyną różnicą, jaką znalazłem, jest to, że każda strona dwukierunkowych powiązań będzie miała odniesienie do drugiej, a jednokierunkowa nie.
To jest skojarzenie jednokierunkowe
public class User {
private int id;
private String name;
@ManyToOne
@JoinColumn(
name = "groupId")
private Group group;
}
public class Group {
private int id;
private String name;
}
Skojarzenie dwukierunkowe
public class User {
private int id;
private String name;
@ManyToOne
@JoinColumn(
name = "groupId")
private Group group;
}
public class Group {
private int id;
private String name;
@OneToMany(mappedBy="group")
private List<User> users;
}
Różnica polega na tym, czy grupa posiada referencję użytkownika.
Więc zastanawiam się, czy to jedyna różnica? co jest zalecane?