Как реализовать самонасыщенный кеш ehcache в качестве спящего режима второго уровня - PullRequest
1 голос
/ 22 ноября 2011

Я просто изучаю Ehcache, самонаполняющийся кеш как спящий второй уровень кеша .

Поддерживает ли hibernate самонаполняющийся кэш?
Кто-нибудь может мне помочь найти несколько примеров реализации / документов, связанных с этой темой?

Ответы [ 2 ]

1 голос
/ 23 ноября 2011

VamsiKrishna, я не совсем уверен, что вы пытаетесь достичь здесь, но я думаю, вы хотите избежать того, чтобы два потока загружали одну и ту же сущность из БД.Боюсь, вы не сможете этого добиться.Во-первых, Hibernate не хранит сущности в кэше, а выводит их из строя.Создание их и последующее размещение их так, чтобы слой Ehcache мог с ними справиться (они могут быть перемотаны в некоторые другие внутренние типы iirc), все, что я считаю невозможным (доступность типов будет одной из проблем).вы можете использовать BlockingCache, чтобы имитировать поведение и позволить Hibernate заполнять кэш.Проблема в том, что Hibernate не будет помещать нулевые значения в кеш, если я правильно помню.Несоблюдение этого требования в конечном итоге заблокирует весь ваш кэш.

Короче говоря, я думаю, что вам лучше позволить Hibernate самостоятельно справиться с одновременным доступом к кэшу (контролируемому стратегией доступа к кешу), так как пользователь ничего не должен делать...

0 голосов
/ 22 ноября 2011

с сайта ehcache - http://www.ehcache.org/documentation/user-guide/hibernate#Configure-Ehcache-as-the-Second-Level-Cache-Provider

В hibernate.cfg.xml добавить

<property name="hibernate.cache.region.factory_class">net.sf.ehcache.hibernate.EhCacheRegionFactory</property>
...