Was ist der Unterschied zwischen unidirektionalen und bidirektionalen Assoziationen?
Da die in der Datenbank generierte Tabelle alle gleich ist, besteht der einzige Unterschied darin, dass sich jede Seite der bidirektionalen Zuordnungen auf die andere bezieht und die unidirektionale nicht.
Dies ist eine unidirektionale Zuordnung
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;
}
Die bidirektionale Assoziation
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;
}
Der Unterschied besteht darin, ob die Gruppe eine Referenz des Benutzers enthält.
Ich frage mich also, ob dies der einzige Unterschied ist. was wird empfohlen?