4.4.3. Интерфейс Persistence

Интерфейс Persistence является точкой входа в функциональность хранения данных, предоставляемую слоем ORM.

Методы интерфейса:

  • createTransaction(), getTransaction() - получить интерфейс управления транзакциями. Методы могут принимать имя хранилища данных. Если хранилище не указано, подразумевается основная база данных.

  • callInTransaction(), runInTransaction() - выполнить код в новой транзакции с возвратом значения или без возврата значения. Методы могут принимать имя хранилища данных. Если хранилище не указано, подразумевается основная база данных.

  • isInTransaction() - определяет, существует ли в данный момент активная транзакция.

  • getEntityManager() - возвращает экземпляр EntityManager для текущей транзакции. Метод может принимать имя хранилища данных. Если хранилище не указано, подразумевается основная база данных.

  • isSoftDeletion() - позволяет определить, активен ли режим мягкого удаления

  • setSoftDeletion() - устанавливает или отключает режим мягкого удаления. Влияет на аналогичный признак всех создаваемых экземпляров EntityManager. По умолчанию мягкое удаление включено.

  • getDbTypeConverter() - возвращает экземпляр DbTypeConverter для основной базы данных или для дополнительного хранилища.

  • getDataSource() - получить javax.sql.DataSource для основной базы данных или для дополнительного хранилища.

    Warning

    Для всех объектов javax.sql.Connection, получаемых методом getDataSource().getConnection(), необходимо после использования соединения вызвать метод close() в секции finally. В противном случае соединение не вернется в пул, через какое-то время пул переполнится, и приложение не сможет выполнять запросы к базе данных.

  • getTools() - возвращает экземпляр интерфейса PersistenceTools (см. ниже).