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

jpa

.pdf
Скачиваний:
5
Добавлен:
02.06.2015
Размер:
2.07 Mб
Скачать

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]