Кэш для записи за JPA - PullRequest
       12

Кэш для записи за JPA

15 голосов
/ 26 августа 2011

Из поиска по всему Интернету и в целом может показаться, что невозможно реализовать EHCache в качестве кэша обратной записи для Hibernate, поскольку это потребует существенных изменений в коде Hibernate.

Существуют ли какие-либо другие решения (предпочтительно с открытым исходным кодом) для поставщика JPA, которые могут «прозрачно» подключиться к реализации кэша с отложенной записью, и предпочтительно такое, которое можно распространять с помощью чего-то вроде терракоты?

Я читал, что EclipseLink и Oracle Coherence могут добиться этого, но, к сожалению, Coherence - не дешевое решение!

1 Ответ

4 голосов
/ 24 декабря 2011

Мы написали обработчик кэширования с обратной записью для Coherence на основе Hibernate.

Что мешает вам писать EHCache CacheWriter с использованием любой реализации JPA, как описано в http://ehcache.org/documentation/apis/write-through-caching. Вы можете расширитьAbstractCacheWriter, и все, что вам нужно реализовать - это запись (net.sf.ehcache.Element), writeAll (java.util.Collection), delete (net.sf.ehcache.CacheEntry) и deleteAll (java.util.Collection).

Просто убедитесь, что он полностью независим от окружающей транзакции.Затем ваше приложение выполняет запись только в кэш и больше не использует JPA.

С какими проблемами вы столкнулись?

...