До сих пор мы видели очень простое отображение O / R, используя hibernate, но есть три наиболее важных темы отображения, которые мы должны изучить подробно.
Это —
- Составление карт коллекций,
- Отображение связей между классами сущностей и
- Сопоставления компонентов.
Коллекции сопоставлений
Если у сущности или класса есть коллекция значений для определенной переменной, то мы можем отобразить эти значения, используя любой из интерфейсов коллекции, доступных в Java. Hibernate может сохранять экземпляры java.util.Map, java.util.Set, java.util.SortedMap, java.util.SortedSet, java.util.List и любой массив постоянных сущностей или значений.
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 может быть установлен как в компараторе, так и в естественном порядке. |
Это сопоставляется с элементом <set> и инициализируется с помощью java.util.HashSet.
Это отображается с помощью элемента <set> и инициализируется с помощью java.util.TreeSet. Атрибут sort может быть установлен как в компараторе, так и в естественном порядке.
Это сопоставляется с элементом <list> и инициализируется с помощью java.util.ArrayList
Это отображается с помощью элемента <bag> или <ibag> и инициализируется с помощью java.util.ArrayList
Это сопоставляется с элементом <map> и инициализируется с помощью java.util.HashMap.
Это отображается с помощью элемента <map> и инициализируется с помощью java.util.TreeMap. Атрибут sort может быть установлен как в компараторе, так и в естественном порядке.
Hibernate поддерживает массивы с <primitive-array> для типов примитивных значений Java и <array> для всего остального. Однако они используются редко, поэтому я не буду обсуждать их в этом уроке.
Если вы хотите отобразить пользовательские интерфейсы коллекций, которые напрямую не поддерживаются Hibernate, вам нужно сообщить Hibernate о семантике ваших пользовательских коллекций, что не очень просто и не рекомендуется использовать.
Ассоциация сопоставлений
Отображение ассоциаций между классами сущностей и взаимосвязями между таблицами — это душа ORM. Ниже приведены четыре способа, которыми можно выразить кардинальность отношений между объектами. Отображение ассоциации может быть как однонаправленным, так и двунаправленным.
Sr.No. | Тип отображения и описание |
---|---|
1 | Многие-к-одному
Отображение отношений «многие к одному» с использованием Hibernate |
2 | Один к одному
Отображение отношений один-к-одному с помощью Hibernate |
3 | Один ко многим
Отображение отношения один ко многим с помощью Hibernate |
4 | Многие-ко-многим
Отображение отношений «многие ко многим» с использованием Hibernate |
Отображение отношений «многие к одному» с использованием Hibernate
Отображение отношений один-к-одному с помощью Hibernate
Отображение отношения один ко многим с помощью Hibernate
Отображение отношений «многие ко многим» с использованием Hibernate
Сопоставления компонентов
Очень возможно, что класс Entity может иметь ссылку на другой класс в качестве переменной-члена. Если указанный класс не имеет своего собственного жизненного цикла и полностью зависит от жизненного цикла класса сущности-владельца, следовательно, указанный класс, следовательно, называется классом Компонента .
Сопоставление коллекций компонентов также возможно аналогично сопоставлению обычных коллекций с небольшими различиями в конфигурации. Мы увидим эти два отображения подробно с примерами.
Отображение для класса, имеющего ссылку на другой класс в качестве переменной-члена.