单向关联和双向关联有什么区别?
由于在数据库中生成的表都是相同的,因此我发现唯一的区别是双向关联的每一侧都将引用另一侧,而单向关联则不需要。
这是一个单向关联
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;
}
区别在于组是否持有用户的引用。
那么我想知道这是唯一的区别吗?哪个更推荐?