Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

jpa

.pdf
Скачиваний:
12
Добавлен:
02.06.2015
Размер:
2 Мб
Скачать
☆

Дизайн 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