jpa
.pdfДизайн Model в архитектуре MVC как сервиса для приложения
Модель должна знать, как:
◦Найти хранимые объекты
◦Изменить хранимые объекты
◦Обработать транзакции
◦Следить за целостностью
Модель не должна знать об остальном приложении
Приложение обращается к модели
2-21
Архитектура MVC-приложения
2-22
Архитектура MVC-приложения
Сервис в модели предоставляет:
◦Поиск
◦Обработку сохранения
◦Может быть несколько сервисов
Решения об использовании объектов модели вне модели
◦detached или управляемые сущности
Решения о контроле транзакций
2-23
Java Persistence API
Сущности (Entities)
Транзакции в JPA
Иерархия классов и JPA
Связи в JPA
EJB-QL
Обработчики (Listeners)
2-24
Требования к хранимым классам
Должны быть top-level классами
Не могут быть final
Не могут иметь final поля или методы
Должны иметь public или protected конструктор без аргументов
2-25
Требования к хранимым классам
Должны иметь объявленный
первичный ключ
Могут быть абстрактными и конкретными
Должны идентифицироваться в
метаданных мапинга
Хранимые поля должны быть
поддерживаемых типов
2-26
Что такое метаданные мапинга?
Информация, необходимая JPAимплементации для обеспечения
взаимодействия объектной модели и БД
◦Имя таблицы в БД
◦Первичные ключи
◦Каскадирование для связей
◦Стратегия и поля версий
◦И т.д.
2-27
Определение метаданных мапинга
Аннотации JPA
◦Наш курс использует только аннотации
XML-файлы (ORM-файлы)
◦Настройки, указаннае в файлах,
более приоритетны, чем соответствующие аннотации
2-28
Классы сущностей
Используйте аннотацию Entity
Могут наследоваться от
◦Mapped Superclass
◦Других классов сущностей
◦Нехранимых классов
Поля нехранимых классов никогда не сохраняются
2-29
Два типа доступа в JPA
Доступ к свойствам
◦С помощью JavaBean-методов
Доступ к полям
Один тип доступа применяется
ко всей иерархии сущностей
Определяется
◦Положением первой аннотации
◦Значением тэга <access> в метаданных
2-30