Разница между однонаправленными и двунаправленными связями в Hibernate заключается в том, что в односторонних ассоциациях информация о наличии связи присутствует только у одной сущности, а в двунаправленных — две сущности взаимно владеют информацией о связи. 1
Однонаправленные отношения — это отношение, владельцем которого является только одна из двух сторон, при этом вторая сторона об этом отношении ничего не знает. 2 Hibernate будет считать владельцем отношения ту сущность, в которой будет поставлена аннотация отношения. 2
Двунаправленные отношения подразумевают, что обе стороны отношения обладают информацией о связи. 2 Родитель знает про всех своих потомков, а каждый потомок знает своего родителя. 4
Также двунаправленная связь обеспечивает навигационный доступ в обоих направлениях, что позволяет получать доступ к другой стороне без явных запросов. 3