単方向と双方向の関連付けの違いは何ですか?
dbで生成されたテーブルはすべて同じであるため、私が見つけた唯一の違いは、双方向の関連付けのそれぞれの側が他方を参照し、単方向ではないことです。
これは一方向の関連付けです
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;
}
双方向の関連付け
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;
}
違いは、グループがユーザーの参照を保持しているかどうかです。
これが唯一の違いなのかしら?どちらがお勧めですか?