Qual é a diferença entre as associações JPA unidirecional e bidirecional e Hibernate?

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ã

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ári

Então, eu me pergunto se esta é a única diferença? o que é recomendado?

questionAnswers(4)

yourAnswerToTheQuestion