You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Spring provided a convenience property for "cacheRegionFactory" in the Hibernate 3.x and 4.x packages. The current support for Hibernate 5.x no longer provides this flexibility. This is quite unfortunate, as there are some scenarios where customization of the underlying cache infrastructure is desired, and injection of various Spring-managed dependencies is the natural approach.
Please note that the "hibernate.cache.region.factory_class" property is somewhat misleading: in addition to an implementation class, an actual object instance implementing org.hibernate.cache.spi.RegionFactory is equally valid: please see org.hibernate.cache.internal.RegionFactoryInitiator#initiateService.
At the moment we are using Hibernate 5.1.x, and I have not verified that the approach described below is equally applicable to 5.0.x/5.1.x/5.2.x/5.3.x APIs.
That said, the current workaround I am using is to subclass the hibernate5 LocalSessionFactoryBean as follows:
(inspired by org.springframework.orm.hibernate5.LocalSessionFactoryBuilder#setMultiTenantConnectionProvider)
If possible (across the range of Hibernate versions currently supported by Spring), it would be nice to have the "cacheRegionFactory" restored for 5.1. A backport to 5.0.x would be a bonus :)
I've added a corresponding setCacheRegionFactory setter to LocalSessionFactoryBean as well as LocalSessionFactoryBuilder, going nicely with other recent additions such as setIntegrators and setBeanContainer. I prefer keeping this 5.1 only since there are quite a few related additions in that release, and there are easy enough workarounds for the time being.
Taras Tielkes opened SPR-17043 and commented
Spring provided a convenience property for "
cacheRegionFactory
" in the Hibernate 3.x and 4.x packages. The current support for Hibernate 5.x no longer provides this flexibility. This is quite unfortunate, as there are some scenarios where customization of the underlying cache infrastructure is desired, and injection of various Spring-managed dependencies is the natural approach.Please note that the "
hibernate.cache.region.factory_class
" property is somewhat misleading: in addition to an implementation class, an actual object instance implementingorg.hibernate.cache.spi.RegionFactory
is equally valid: please seeorg.hibernate.cache.internal.RegionFactoryInitiator#initiateService
.At the moment we are using Hibernate 5.1.x, and I have not verified that the approach described below is equally applicable to 5.0.x/5.1.x/5.2.x/5.3.x APIs.
That said, the current workaround I am using is to subclass the hibernate5
LocalSessionFactoryBean
as follows:(inspired by
org.springframework.orm.hibernate5.LocalSessionFactoryBuilder#setMultiTenantConnectionProvider
)If possible (across the range of Hibernate versions currently supported by Spring), it would be nice to have the "
cacheRegionFactory
" restored for 5.1. A backport to 5.0.x would be a bonus :)Affects: 4.3.18, 5.0.7
Issue Links:
Referenced from: commits 93d9121
The text was updated successfully, but these errors were encountered: