Qual è la differenza tra le associazioni unidirezionali e bidirezionali?
Poiché la tabella generata nel db è la stessa, quindi l'unica differenza che ho riscontrato è che ciascun lato delle associazioni bidirezionali avrà un riferimento all'altro e il non unidirezionale.
Questa è un'associazione unidirezionale
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;
}
L'associazione bidirezionale
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;
}
La differenza è se il gruppo detiene un riferimento dell'utente.
Quindi mi chiedo se questa è l'unica differenza? quale è raccomandato?