API персистентности Java - переопределение / расширение Hibernate (или аналогичного) EntityManager

В настоящее время я использую реализацию JPA в hibernate для успешного сохранения объектов в источнике данных. Теперь я хотел бы переопределить реализацию EntityManager в hibernate, в частности, функцию createQuery. Поэтому, когда создается мой контекст постоянства, вместо него будет использоваться мой настроенный EntityManager.

Это возможно? Если так, как я буду действовать?

Большое спасибо.

РЕДАКТИРОВАТЬ:

Я хотел бы реализовать свой собственный кеш. (Примечание: я рассмотрел кэш 2-го уровня Hibernate, и главный недостаток заключается в том, что "кеши никогда не узнают об изменениях, внесенных в постоянное хранилище другим приложением", поэтому я выбрал его).

Мой кэш будет содержать недавно использованные данные из источника данных. Поскольку клиенты запрашивают данные через EntityManager, я бы переопределил / расширил это так, чтобы сначала проверялся кеш. Если это не так, то EntityManager будет работать как обычно.

РЕДАКТИРОВАТЬ 2:

В качестве альтернативы я мог бы расширить QueryImpl из org.hibernate.ejb. Это позволило бы мне изменить функциональность getResultList() и getSingleResult() на следующее:

  1. проверить внешний кеш на данные
  2. если найден, вернуть результаты
  3. в противном случае вызовите базовый класс QueryImpl.getResultList (или QueryImpl.getSingleResult())

0 ответов

Другие вопросы по тегам