пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ


Сущности в Entity Persistence. Менеджер Сущностей (Entity Manager) и Контекст постоянства (Persistence Context). Методы работы с данными в Entity Persistence EJB 3.

Класс сущности должен быть помечен аннотацией @javax.persistence.entity. Должен иметь публичный или защищенный конструктор без параметров. Класс может иметь другие конструкторы. Сам класс и его элементы, используемые в механизме персистентности, не могут быть помечены как final. Если экземпляры будут использоваться в качестве параметров удаленных методов, то класс должен быть подготовлен к сериализации. Классы сущностей могут расширять как обычные классы, так и классы сущностей. Обычные классы могут расширять классы сущностей. Поля, участвующие в механизме персистентности, не могут быть публичными.

Контекст персистентности (persistencecontext) представляет собой множество экземпляров сущностей одного модуля персистентности, в котором любому постоянному идентификатору сущности соответствует единственный экземпляр сущности. В контексте хранятся экземпляры сущностей, которые были прочитаны из БД и/или которые нужно сохранить в БД.

С контекстом персистентности всегда связан экземпляр менеджера сущностей (объект типа javax.persistence.EntityManager), который управляет жизненным циклом экземпляров сущностей, находящихся в рамках данного контекста.

EntityManager API - это интерфейс, который связывает класс сущности приложения (Entity Bean) и её представления в БД. EntityManager знает как нужно добавлять сущности в БД, обновлять и удалять их, а также предоставляет механизмы для настройки производительности, кэширования, транзакций и т.д. Для этого используется язык запросов JPQL, очень похожий на SQL.

В интерфейсе EntityManager определены следующие группы методов:

* управление жизненным циклом сущностей (persist(), refresh(), remove(), merge());

* поиск экземпляра сущности по первичному ключу (find(), getReference());

* создание объектов типа Query, предназначенных для выполнения запросов (createNamedQuery(), createQuery(), createNativeQuery());

* управление контекстом персистентности (flush(), clear(), close(), getTransaction() и т.д.).


28.05.2018; 17:06
хиты: 558
рейтинг:0
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь