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

jpa

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

EntityManager JPA

2-11

Как EntityManager отслеживает

изменения статуса?

Расширение байт-кода

◦ Разработка POJO-сущности

◦ Определение хранимых полей с помощью метаданных

◦ Компиляция ◦ Расширение байт-кода

2-12

EntityManager в EJB3

@Stateless

public class ServiceBean implements Service {

 

@PersistenceContext

 

EntityManager em;

 

...

}

ServiceBean.java

Параметры аннотации:

◦unitName — имя JPA модуля

◦type:

PersistenceContextType.TRANSACTIONAL

PersistenceContextType.EXTENDED

2-13

Методы жизненного цикла в интерфейсе EntityManager

boolean isOpen()‏

◦IllegalStateException если EM

получен с помощью Injection

◦IllegalStateException если

транзакция активна

◦После закрытия все методы вызывают IllegalStateException

void close()‏

2-14

Интерфейс EntityManager

void persist(Object entity)‏

◦Делает‏вновь‏созданную‏сущность‏

управляемой

◦Данные‏сохраняются при‏фиксации‏ транзакции

void remove(Object entity)‏

◦Помечает сущность‏к‏удалению

◦Удаление‏происходит‏при‏фиксации транзакции

2-15

Интерфейс EntityManager

void refresh(Object entity)‏

◦Обновляет данные в сущности

◦Перезаписывает все изменения

T find(Class<T> entityClass,

Object key)‏

◦Может вернуть null

◦Предпочтительнее, чем getReference

T getReference(Class<T> entityClass, Object key)‏

◦Не возвращает null

2-16

Утилитный класс Persistence в JPA

Содержит два метода для

получения EntityManagerFactory

◦puName — имя Persistence модуля

Может быть пустым

◦Опция Map позволяет задавать

специфичные параметры

2-17

Интерфейс EntityManagerFactory

Содержит два метода для получения EntityManager

◦createEntityManager()‏

◦createEntityManager(Map map)‏

Содержит два метода

жизненного цикла

◦boolean isOpen()‏

◦void close()‏

2-18

EntityManagerFactory

2-19

Типовой жизненный цикл приложения, использующего БД

Получить запрос пользователя

Решить, стоит ли открывать контекст транзакции

Найти хранимые объекты

Изменить хранимые объекты

Принять решение о фиксации/

отмене/продолжении транзакции

Повтор

2-20