Можно ли ограничить размер кэша второго уровня Hibernate для конкретной сущности? - PullRequest
3 голосов
/ 10 февраля 2011

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

Возможно ли в Hibernate, с Infinispan в качестве провайдера 2-го уровня, очень точно настроить конкретный кеш с конкретными атрибутами (политика удаления, размер и т. Д.), Которые Hibernate должен использовать для объекта Foo?

1 Ответ

1 голос
/ 10 февраля 2011

Да. В Hibernate у вас может быть N «областей» кэша, которые могут иметь различные конфигурации и могут быть специфичными для некоторых объектов. Сама конфигурация зависит от поставщика (Infinispan, в вашем случае). См. Этот документ для более подробной информации о конфигурации Infinispan:

http://community.jboss.org/wiki/usinginfinispanasjpahibernatesecondlevelcacheprovider#Advanced_Configuration

Посмотрите примеры того, как переопределить значения по умолчанию для сущности / коллекции. Там вы можете установить стратегию выселения, продолжительность жизни и количество объектов, которые будут храниться в кэше.

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