Hibernate - сопоставления O / R

До сих пор мы видели очень простое сопоставление O / R с использованием спящего режима, но есть три наиболее важных темы сопоставления, которые мы должны изучить подробно.

Это -

  • Отображение коллекций,
  • Отображение ассоциаций между классами сущностей и
  • Сопоставления компонентов.

Сопоставления коллекций

Если объект или класс имеет набор значений для конкретной переменной, мы можем сопоставить эти значения, используя любой из интерфейсов коллекции, доступных в java. Hibernate может сохранять экземплярыjava.util.Map, java.util.Set, java.util.SortedMap, java.util.SortedSet, java.util.List, и любые array постоянных сущностей или значений.

Sr. No. Тип коллекции и описание сопоставления
1 java.util.Set

Это отображается с помощью элемента <set> и инициализируется с помощью java.util.HashSet

2 java.util.SortedSet

Он отображается с помощью элемента <set> и инициализируется с помощью java.util.TreeSet. Вsort Атрибут может быть установлен в компаратор или в естественный порядок.

3 java.util.List

Это отображается с помощью элемента <list> и инициализируется с помощью java.util.ArrayList

4 java.util.Collection

Он отображается с помощью элемента <bag> или <ibag> и инициализируется с помощью java.util.ArrayList

5 java.util.Map

Это отображается с помощью элемента <map> и инициализируется с помощью java.util.HashMap

6 java.util.SortedMap

Он отображается с помощью элемента <map> и инициализируется java.util.TreeMap. Вsort Атрибут может быть установлен в компаратор или в естественный порядок.

Массивы поддерживаются Hibernate с <primitive-array> для типов примитивных значений Java и <array> для всего остального. Однако они используются редко, поэтому я не собираюсь обсуждать их в этом руководстве.

Если вы хотите отобразить пользовательские интерфейсы коллекций, которые напрямую не поддерживаются Hibernate, вам необходимо сообщить Hibernate о семантике ваших пользовательских коллекций, что не очень просто и не рекомендуется для использования.

Сопоставления ассоциаций

Сопоставление ассоциаций между классами сущностей и отношений между таблицами - это душа ORM. Ниже приведены четыре способа выражения мощности взаимосвязи между объектами. Сопоставление ассоциаций может быть как однонаправленным, так и двунаправленным.

Sr. No. Тип отображения и описание
1 Многие к одному

Сопоставление отношений многие-к-одному с помощью Hibernate

2 Один к одному

Сопоставление однозначных отношений с помощью Hibernate

3 Один ко многим

Отображение отношения "один ко многим" с помощью Hibernate

4 Многие ко многим

Сопоставление отношений "многие ко многим" с помощью Hibernate

Сопоставление компонентов

Вполне возможно, что класс Entity может иметь ссылку на другой класс в качестве переменной-члена. Если упомянутый класс не имеет своего собственного жизненного цикла и полностью зависит от жизненного цикла класса-владельца, то упомянутый класс, следовательно, называетсяComponent class.

Отображение Коллекции компонентов также возможно таким же образом, как отображение обычных Коллекций с небольшими различиями в конфигурации. Мы подробно рассмотрим эти два сопоставления на примерах.

Sr. No. Тип отображения и описание
1 Сопоставление компонентов

Отображение для класса, имеющего ссылку на другой класс в качестве переменной-члена.