Как установить кэширование в EJB-компоненте, где я запрашиваю базу данных, используя шаблон hibernate? - PullRequest
3 голосов
/ 30 января 2012

Я запрашиваю базу данных из моего EJB-компонента (DAO), мой запрос выглядит так:

public List findDirectories()
{
  allDirectories = getHibernateTemplate().find("from " + Directory.class.getName() +
        " d order by upper(d.name)";);
  return allDirectories;
}

Я хочу кешировать эти результаты, как я могу это сделать, есть ли пример, на который я тоже могу сослаться. Все, что я хочу сделать, это в моем EBJ Bean, кэшировать набор результатов вышеупомянутого запроса, поэтому в следующий раз, когда страница обновляется, я иду и получаю результаты из кэша, а не из базы данных.

Обновление: я использую более старые версии EJB и поэтому могу использовать cool features из EJB3

1 Ответ

3 голосов
/ 31 января 2012

Общая идея здесь заключается в том, чтобы использовать сеансовые EJB-компоненты без сохранения состояния для кеширования и управления редко изменяемыми данными. Периодически обновляйте EJB, если данные, вопреки всем ожиданиям, изменяются.

Java EE 6 предоставляет несколько иную технику, синглтон-бины: http://java.sun.com/developer/technicalArticles/JavaEE/JavaEE6Overview_Part3.html.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...