Руководство по Hibernate. Виды связей.

До этого момента мы рассматривали только простейшие виды связей между классами и таблицами в базах данных (далее – БД). Но давайте рассмотрим более детально виды связей в ORM.
Связи в ORM деляся на 3 гурппы:

  • Связывание коллекций
  • Ассоциативное связывание
  • Связывание компоннетов

Рассмотрим каждую из них:

Связывание коллекций

Если среди значений класса есть коллекции (collections) каких-либо значений, мы можем связать (map) их с помощью любого интерфейса коллекций, доступных в Java.

В Hibernate мы можем оперировать следующими коллекциями:


java.util.List (ссылка на пример)

Связывается (mapped) с помощью элемента <list> и инициализируется с помощью java.util.ArrayList


java.util.Collection (ссылка на пример)

Связывается (mapped) с помощью элементов <bag> или <ibag> и инициализируется с помощью java.util.ArrayList


java.util. Set (ссылка на пример)

Связывается (mapped) с помощью элемента <set> и инициализируется с помощью java.util.HashSet


java.util.SortedSet (ссылка на пример)

Связывается (mapped) с помощью элемента <set> и инициализируется с помощью java.util.TreeSet. В качестве параметра для сравнения может выбрать либо компаратор, либо естественный порядок.


java.util.Map (ссылка на пример)

Связывается (mapped) с помощью элемента <map> и инициализируется с помощью java.util.HashMap.


java.util.SortedMap (ссылка на пример)

Связывается (mapped) с помощью элемента <map> и инициализируется с помощью java.util.TreeMap. В качестве параметра для сравнения может выбрать либо компаратор, либо естественный порядок.


 

Ассоциативное связывание

Связывание ассоциаций  – это связывание (mapping) классов и отношений между таблицами в БД. Сущействует 4 типа таких зависимостей:


Many-to-One (ссылка на пример)

Связывание (mapping) отнощений many-to-one с использованием Hibernate.


One-to-One (ссылка на пример)

Связывание (mapping) отнощений one-to-one с использованием Hibernate.


One-to-Many (ссылка на пример)

Связывание (mapping) отнощений one-to-many с использованием Hibernate.


Many-to-Many (ссылка на пример)

Связывание (mapping) отнощений many-to-many с использованием Hibernate.


 

Связывание компонентов

Возможна ситуация, при которой наш Java – класс имеет ссылку на другой класс, как одну из переменных. Если класс, на который мы ссылаемся не имеет своего собственного жизненного цикла и полностью зависит от жизненного цикла класса, который на него ссылается, то класс, на который ссылаются называется классом Компонентом (Component Class).

По ЭТОЙ ССЫЛКЕ приведён пример связывания компонентов.