До этого момента мы рассматривали только простейшие виды связей между классами и таблицами в базах данных (далее – БД). Но давайте рассмотрим более детально виды связей в 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.
Связывание (mapping) отнощений one-to-one с использованием Hibernate.
One-to-Many (ссылка на пример)
Связывание (mapping) отнощений one-to-many с использованием Hibernate.
Many-to-Many (ссылка на пример)
Связывание (mapping) отнощений many-to-many с использованием Hibernate.
Возможна ситуация, при которой наш Java – класс имеет ссылку на другой класс, как одну из переменных. Если класс, на который мы ссылаемся не имеет своего собственного жизненного цикла и полностью зависит от жизненного цикла класса, который на него ссылается, то класс, на который ссылаются называется классом Компонентом (Component Class).
По ЭТОЙ ССЫЛКЕ приведён пример связывания компонентов.