Справочная документация Hibernate
5.0.0.CR2
Оригинал: https://docs.jboss.org/hibernate/orm/5.0/manual/en-US/html/
Права на оригинал: ©2004 Red Hat, Inc.
2015-07-08
2015-07-08
Оглавление
-
1. Руководство
-
1.1. Часть 1 - Первое приложение Hibernate
- 1.1.1. Установка
- 1.1.2. Первый класс
- 1.1.3. Файл отображений
- 1.1.4. Конфигурирование Hibernate
- 1.1.5. Сборка с Maven
- 1.1.6. Запуск и помошники
- 1.1.7. Загрузка и хранение объектов
-
1.2. Часть 2 - Отображение ассоциаций
- 1.2.1. Отображение для класса Person
- 1.2.2. Однонаправленная ассоциация на основе Set
- 1.2.3. Работа с ассоциациями
- 1.2.4. Коллекция значений
- 1.2.5. Двунаправленные ассоциации
- 1.2.6. Работа двунаправленных связей
-
1.3. Часть 3 - приложение Менеджер событий
- 1.3.1. Написание основного сервлета
- 1.3.2. Обработка и визуализация
- 1.3.3. Развёртывание и тестирование
- 1.4. Резюме
-
1.1. Часть 1 - Первое приложение Hibernate
-
2. Архитектура
-
2.1. Обзор
- 2.1.1. Минимальная архитектура
- 2.1.2. Комплексная архитектура
- 2.1.3. Основной API
- 2.2. Контекстные сессии
-
2.1. Обзор
-
3. Конфигурирование
- 3.1. Программная конфигурация
- 3.2. Получение SessionFactory
- 3.3. Соединения JDBC
-
3.4. Необязательные свойства конфигурации
- 3.4.1. Диалекты SQL
- 3.4.2. Outer Join Fetching
- 3.4.3. Двоичные потоки
- 3.4.4. Кэш второго уровня и кэш запросов
- 3.4.5. Замена языка запроса
- 3.4.6. Статистика Hibernate
- 3.5. Логирование
- 3.6. Имплементация NamingStrategy
- 3.7. Имплементация PersisterClassProvider
- 3.8. XML-файл конфигурации
- 3.9. Интеграция на сервер приложений Java EE
-
4. Постоянные классы
- 4.1. Пример простого POJO
- 4.2. Реализация наследования
- 4.3. Реализация
equals()
иhashCode()
- 4.4. Динамические модели
- 4.5. Tuplizers (Кортежизаторы)
- 4.6. EntityNameResolvers
-
5. Основы O/R отображения
-
5.1. Объявление отображения
- 5.1.1. Сущность
- 5.1.2. Идентификаторы
- 5.1.3. Свойства оптимистической блокировки (необязательно)
- 5.1.4. Свойство
- 5.1.5. Встроенные объекты (они же компоненты)
- 5.1.6. Стратегия наследования
- 5.1.7. Отображение ассоциаций один-к-одному и многие-к-одному
- 5.1.8. Естестенный-идентификатор (Natural-id)
- 5.1.9. Any
- 5.1.10. Свойства
- 5.1.11. Некоторые особенности hbm.xml
-
5.2. Типа Hibernate
- 5.2.1. Сущности и значения
- 5.2.2. Основные типы значений
- 5.2.3. Пользовательские типы значений
- 5.3. Отображение класса более одного раза
- 5.4. Идентификаторы, цитируемые SQL
- 5.5. Сгенерированные свойства
- 5.6. Преобразователи столбцов: выражения для чтения и записи
- 5.7. Вспомогательные объекты базы данных
-
5.1. Объявление отображения
-
6. Типы
-
6.1. Типы значений
- 6.1.1. Основные типы значений
- 6.1.2. Составные типы
- 6.1.3. Типы коллекций
- 6.2. Типы сущностей
- 6.3. Значение категорий типов
- 6.4. Пользовательские типы
- 6.5. Реестр типов
-
6.1. Типы значений
-
7. Отображение коллекции
- 7.1. Постоянные (persistent) коллекции
-
7.2. Как отображать коллекции
- 7.2.1. Сбор внешних ключей
- 7.2.2. Индексированные коллекции
- 7.2.3. Коллекции основных типов и встраиваемых объектов
-
7.3. Расширенные отображения коллекции
- 7.3.1. Отсортированные коллекции
- 7.3.2. Двунаправленные ассоциации
- 7.3.3. Двунаправленные ассоциации с индексированными коллекциями
- 7.3.4. Тройные ассоциации
- 7.3.5. Использование <idbag>
- 7.4. Примеры коллекций
-
8. Ассоциативные отображения
- 8.1. Введение
-
8.2. Однонаправленные ассоциации
- 8.2.1. Многие-к-одному
- 8.2.2. Один-к-одному
- 8.2.3. Один-ко-многим
-
8.3. Однонаправленные ассоциации с присоединением таблиц
- 8.3.1. Один-ко-многим
- 8.3.2. Многие-к-одному
- 8.3.3. Один-к-одному
- 8.3.4. Многие-ко-многим
-
8.4. Двунаправленные ассоциации
- 8.4.1. Один-ко-многим / Многие-к-одному
- 8.4.2. Один-к-одному
-
8.5. Двунаправленные ассоциации с присоединением таблиц
- 8.5.1. Один-ко-многим / Многие-к-одному
- 8.5.2. Один-к-одному
- 8.5.3. Многие-ко-многим
- 8.6. Более сложные ассоциативные отображения
- 9. Отображение компонентов
-
10. Отображение наследования
-
10.1. Три стратегии
- 10.1.1. Иерархия Таблица на класс
- 10.1.2. Таблица на подкласс
- 10.1.3. Таблица на подкласс: использование дискриминатора
- 10.1.4. Смешивание «Иерархии Таблица на класс» с «Таблица на подкласс»
- 10.1.5. Таблица на конкретный класс
- 10.1.6. Таблица на конкретный класс с использованием неявного полиморфизма
- 10.1.7. Смешивание неявного полиморфизма с другими отображениями наследования
- 10.2. Ограничения
-
10.1. Три стратегии
-
11. Работа с объектами
- 11.1. Состояния объектов Hibernate
- 11.2. Делаем объекты постоянными (persistent)
- 11.3. Загрузка объекта
-
11.4. Запросы
- 11.4.1. Выполнение запросов
- 11.4.2. Фильтрация коллекций
- 11.4.3. Запросы Criteria
- 11.4.4. Запросы на нативном SQL
- 11.5. Изменение постоянных объектов
- 11.6. Изменение отсоединённых (detached) объектов
- 11.7. Автоматическое обнаружение состояния
- 11.8. Удаление постоянных объектов
- 11.9. Репликация объекта между двумя разными хранилищами данных
- 11.10. Сброс (flush) сессии
- 11.11. Переходное постоянство (Transitive persistence)
- 11.12. Использование метаданных
- 12. Сущности «только для чтения»
-
13. Транзакции и параллельное выполнение
-
13.1. Сессия и области видимости транзакций
- 13.1.1. Единица работы (Unit of work)
- 13.1.2. Длинные разговоры (Long conversations)
- 13.1.3. Учёт идентичности объекта
- 13.1.4. Общие проблемы
-
13.2. Разграничение транзакций базы данных
- 13.2.1. Неуправляемая среда
- 13.2.2. Использование JTA
- 13.2.3. Обработка исключений
- 13.2.4. Таймаут транзакции
- 13.3. Оптимистический контроль параллельного выполнения
- 13.4. Пессимистическая блокировка
- 13.5. Способы освобождения соединения
-
13.1. Сессия и области видимости транзакций
-
14. Перехватчики и события
- 14.1. Перехватчики
- 14.2. Система событий
- 14.3. Декларативная безопасность Hibernate
-
15. Пакетная обработка
- 15.1. Пакетная вставка
- 15.2. Пакетное обновление
- 15.3. Интерфейс StatelessSession
- 15.4. Операции в DML-стиле
-
16. HQL: Язык запросов Hibernate
- 16.1. Чувствительность к регистру
- 16.2. Секция «from»
- 16.3. Ассоциации и объединения (join)
- 16.4. Формы синтаксиса join
- 16.5. Ссылаясь на свойство идентификатора
- 16.6. Секция «select»
- 16.7. Агригатные функции
- 16.8. Полиморфные запросы
- 16.9. Секция «where»
- 16.10. Выражения
- 16.11. Секция «order by»
- 16.12. Секция «group by»
- 16.13. Подзапросы
- 16.14. Примеры HQL
- 16.15. Массовое обновление и удаление
- 16.16. Советы и хитрости
- 16.17. Компоненты
- 16.18. Синтаксис конструктора значения записи
-
17. Запросы Criteria
- 17.1. Создание экземпляра
Criteria
- 17.2. Сужение набора результатов
- 17.3. Упорядочивание результатов
- 17.4. Ассоциации
- 17.5. Динамическая ассоциативная выборка
- 17.6. Компоненты
- 17.7. Коллекции
- 17.8. Запросы Example
- 17.9. Проекции, агрегация и группировка
- 17.10. Отсоединённые запросы и подзапросы
- 17.11. Запросы по естественному идентификатору
- 17.1. Создание экземпляра
-
18. Нативный SQL
-
18.1. Использование
SQLQuery
- 18.1.1. Скалярные запросы
- 18.1.2. Запросы сущностей
- 18.1.3. Обработка ассоциаций и коллекций
- 18.1.4. Возвращение нескольких сущностей
- 18.1.5. Возвращение неуправляемых сущностей
- 18.1.6. Обработка наследования
- 18.1.7. Параметры
- 18.2. Именованные SQL-запросы
- 18.3. Пользовательский SQL для создания, обновления и удаления
- 18.4. Пользовательский SQL для загрузки
-
18.1. Использование
-
19. Фильтрация данных
- 19.1. Фильтры Hibernate
-
20. Повышение производительности
-
20.1. Стратегии выборки
- 20.1.1. Работа с ленивыми ассоциациями
- 20.1.2. Настройка стратегий выборки
- 20.1.3. Одиносторонняя ассоциация прокси
- 20.1.4. Инициализация коллекций и прокси
- 20.1.5. Использование пакетной выборки
- 20.1.6. Использование выборки подзапросов
- 20.1.7. Выборка профилей
- 20.1.8. Использование ленивой выборки свойств
-
20.2. Кэш второго уровня
- 20.2.1. Отображения кэшей
- 20.2.2. Стратегия: только для чтения
- 20.2.3. Стратегия: чтение/запись
- 20.2.4. Стратегия: нестрогое чтение/запись
- 20.2.5. Стратегия: транзакционная
- 20.2.6. Совместимость с поставщиком кэша/параллельной стратегией
- 20.3. Управление кэшами
-
20.4. Кэш запросов
- 20.4.1. Включение кэширования запросов
- 20.4.2. Области кэша запросов
- 20.5. Улучшение байткода
- 20.6. Понимание производительности коллекций
-
20.7. Мониторинг производительности
- 20.7.1. Мониторинг SessionFactory
- 20.7.2. Метрики
-
20.1. Стратегии выборки
-
21. Руководство по набору инструментов
-
21.1. Автоматическое создание схемы
- 21.1.1. Настройка схемы
- 21.1.2. Запуск инструмента
- 21.1.3. Свойства
- 21.1.4. Использование Ant
- 21.1.5. Инкрементные обновления схемы
- 21.1.6. Использование Ant для инкрементных обновлений схемы
- 21.1.7. Проверка схемы
- 21.1.8. Использование Ant для проверки схемы
-
21.1. Автоматическое создание схемы
-
22. Дополнительные модули
-
22.1. Проверка бинов (Bean Validation)
- 22.1.1. Добавление Проверки бинов (Bean Validation)
- 22.1.2. Конфигурация
- 22.1.3. Перехват нарушений
- 22.1.4. Схема базы данных
-
22.2. Поиск Hibernate (Hibernate Search)
- 22.2.1. Описание
- 22.2.2. Интеграция с аннотациями Hibernate
-
22.1. Проверка бинов (Bean Validation)
-
23. Пример. Родитель/Ребёнок
- 23.1. Заметка о коллекциях
- 23.2. Двунаправленный «один-ко-многим»
- 23.3. Каскадный жизненный цикл
-
23.4. Каскады и
unsaved-value
(несохраненные значения) - 23.5. Вывод
-
24. Пример. Приложение Веб-блог
- 24.1. Постоянные (persistent) классы
- 24.2. Отображения Hibernate
- 24.3. Код Hibernate
-
25. Пример. Различные отображения
- 25.1. Работодатель/Работник
- 25.2. Автор/Работа
- 25.3. Клиент/Заказ/Товар
- 25.4. Различные примеры отображений
- 26. Лучшие практики
-
27. Вопросы по переносимости баз данных
- 27.1. Основы переносимости
- 27.2. Диалект
- 27.3. Разрешение диалекта
- 27.4. Генерация идентификаторов
- 27.5. Функции базы данных