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 | Сопоставление компонентов Отображение для класса, имеющего ссылку на другой класс в качестве переменной-члена. |