Qual é a diferença entre associações unidirecionais e bidirecionais?
Como a tabela gerada no banco de dados é a mesma, a única diferença que encontrei é que cada lado das associações bidirecionais fará referência ao outro, e o unidirecional não.
Esta é uma associação unidirecional
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;
}
A associação bidirecional
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;
}
A diferença é se o grupo possui uma referência do usuário.
Então, eu me pergunto se essa é a única diferença? o que é recomendado?