Контейнерно управляемое сохранения состояния
(Container Managed Persistence - CMP)

Определение сохраняемых классов

В этом простом примере мы будем использовать два EJB-объекта. Первый, называемый "CD" моделирует музыкальный компакт-диск. Он содержит атрибуты (переменные экземпляра), которые хранят название (title), идентификатор (ID), код(code) и другие свойства музыкального CD. Следующий объект называется "CDCollection" и моделирует набор таких компакт-дисков. Этот объект выступает в роли простого интерфейса между клиентом и объектом "CD"; технически, мы могли бы управлять ею и без такого объекта, но это усложняет повторение некоторых операций. Объект "CDCollection" будет иметь следующие методы deleteAll(), addCd(), findInAnyField() и findAll().

  • addCd() - добавляет простой CD определенный по значениям его атрибутов

  • deleteAll() - Удаляет все CD

  • findInAnyField() - Возвращает массив экземпляров объекта "CD" у которых определены текстовые строки в одном из их атрибутов

  • findAll() - Возвращает массив всех экземпляров CD, присутствующих в системе

Все эти методы могут быть определены с помощью прямых манипуляций с home-интерфейсом объекта "CD", но гораздо элегантнее решить эту задачу таким путём.

Из-за того, что объект CDCollection взаимодействует в течении запроса от клиента только с объектами CD, то получается, что у него нет постоянной информации. Так что он является session-объектом. Более того, так как его методы полностью самодостаточны - это stateless session bean.

Однако, объект CD будет entity EJB из-за того, что некоторая информация в нем постоянна.because some of its information is persistent.
Для примера, ID, артист (artist), название (title), тип (type) и заметки о записи (notes) должны сохраняться. Конечно, объект CD может иметь другие переменные внутри себя, но они не обязательно будут сохраняемыми. Для примера, некоторые переменные будут хранить временную информацию, а другие будут получаться их сохраняемых атрибутов.

В этом примере, я предполагаю, что все сохраняемые поля будут примитивными типами Java (Java Primitive type) представляющими ID, title, artist, type и notes.

Наши друзья