5.2.6.11. EntityStates

Интерфейс для получения информации о персистентных сущностях, сохраняемых через ORM. В отличие от бинов Persistence и PersistenceTools доступен на всех уровнях приложения.

Методы EntityStates:

  • isNew() - определяет, является ли переданный экземпляр только что созданным. Он может быть либо в состоянии New, либо Managed, но только что сохраненным в текущей транзакции. Также возвращает true для неперсистентных сущностей.

  • isManaged() - определяет, находится ли переданный экземпляр в состоянии Managed, то есть присоединен к персистентному контексту.

  • isDetached() - определяет, находится ли переданный экземпляр в состоянии Detached. Возвращает true, также если экземпляр не является персистентной сущностью.

  • isLoaded() - определяет, загружен ли данный атрибут сущности. Атрибут загружается, если он включен в представление, или если это локальный атрибут и никакое представление не использовалось в процессе загрузки через EntityManager или DataManager. Данный метод поддерживает проверку только непосредственных атрибутов сущностей.

  • checkLoaded() - то же самое что и isLoaded(), но выбрасывает IllegalArgumentException если хотя бы один из переданных атрибутов не загружен.

  • isLoadedWithView() - принимает экземпляр сущности и представление, и возвращает true если все атрибуты требуемые в представлении на самом деле загружены.

  • checkLoadedWithView() - то же самое что и isLoadedWithView(), но выбрасывает IllegalArgumentException вместо возврата false.

  • makeDetached() - принимает только что созданный экземпляр сущности и переводит его в состояние detached. Detached-объект можно передать в DataManager.commit() или EntityManager.merge() для сохранения его состояния в базе данных. Подробнее см. API docs.

  • makePatch() - принимает только что созданный экземпляр сущности и превращает его в patch-объект. Patch-объект можно передать в DataManager.commit() или EntityManager.merge() для сохранения его состояния в базе данных, при этом в отличие от detached-объекта, будут сохранены только не-null атрибуты. Подробнее см. API docs.