EhCache гарантирует, что все экземпляры SingletonEhCacheRegionFactory
будут использовать один и тот же фактический CacheManager
внутри, независимо от того, сколько экземпляров SingletonEhCacheRegionFactory
вы создадите, что сделает его сырой версией шаблона проектирования Singleton.
С другой стороны, равнина EhCacheRegionFactory
будет каждый раз получать новый CacheManager
.
Если у вас есть две фабрики сессий Hibernate в Spring, каждая из которых использует свой собственный экземпляр SingletonEhCacheRegionFactory
, то они на самом деле в конечном итоге разделят большую часть своего состояния кэша, что может объяснить вашу проблему.
Это не совсем подходит для Spring, где управление синглетами должно осуществляться контейнером. Если вы используете EhCacheRegionFactory
, вы, вероятно, получите более предсказуемые результаты. Я предлагаю попробовать и посмотреть, как вы поживаете.