Промоция
Университет CodeGym
Изучаване на
курс
Задачи
Проучвания и тестове
игри
Помогне
График
Общност
Потребители
Форум
Чат
Статии
Истории на успеха
Дейност
Отзиви
Абонаменти
Лека тема
Уроци
Отзиви
За нас
Започнете
Започнете да учите
Започнете да учите сега
Карта на мисии
Уроци
Ниво 15
Работа с йерархии на обекти
SQL & Hibernate
ниво,
Урок
Проблеми с консервацията Днес ще имаме нова и супер интересна схема - използване на функциите на Hibernate за запазване на йерархията на класовете в базата данни. Йерархията на класовете е набор от класове, свързани един с друг чрез връзка
Една таблица за цялата йерархия на класовете
SQL & Hibernate
ниво,
Урок
Описание Следващият подход за съхраняване на йерархия на класове е да съхранявате всички класове в йерархията в една таблица . Тази стратегия се нарича Единична маса . Например така: CREATE TABLE user_ employee_client {
Дискриминатор
SQL & Hibernate
ниво,
Урок
Описание В предишния урок видяхте, че Hibernate използва специална колона DTYPE VARCHAR за съхраняване на името на клас Entity. Такава колона се нарича дискриминатор . Използва се за недвусмислено определяне кой клас да се създаде за даден
Присъединена маса
SQL & Hibernate
ниво,
Урок
Описание Друга стратегия за съхраняване на йерархия на класове в база данни се нарича Joined Table. За него има специална анотация: @Inheritance(strategy = InheritanceType.JOINED) Пример за нашите класове: @Inheritance(strategy = Inheritanc
Таблица за клас
SQL & Hibernate
ниво,
Урок
5.1 Описание И накрая, последната стратегия е Таблица за клас. Това означава, че за всеки клас ще се използва отделна таблица. В известен смисъл това е същият MappedSuperClass, само в актуализирана форма. Първо, трябва да използвате анотаци
Избор на стратегия за запазване на йерархията
SQL & Hibernate
ниво,
Урок
Описание Всяка от горните стратегии и техники има своите предимства и недостатъци. Общите препоръки за избор на конкретна стратегия ще изглеждат така: Стратегия TABLE_PER_CLASS, базирана на UNION Тази стратегия е най-добре избрана, ако не с
Please enable JavaScript to continue using this application.