假设存在多个共享公共实体模块的Java应用程序(实体类+ Hibernate XML映射)。目前,实体未启用缓存(映射中没有<cache.../>
个元素。)
大多数应用程序都非常关注编辑单个实体,因此无法依赖二级缓存。
现在,实施了一个新的应用程序
如何配置缓存?
几点意见:
我无法将<cache.../>
元素添加到映射中,因为这会破坏其他不配置此类缓存且不受我影响的应用程序:
Second-level cache is not enabled for usage [hibernate.cache.use_second_level_cache | hibernate.cache.use_query_cache]
ehcache.xml
中为实体设置缓存区域无济于事<cache.../>
添加到实体映射中,但通过设置hibernate.cache.use_second_level_cache=false
来禁用缓存也不起作用,尽管在http://docs.jboss.org/hibernate/core/3.3/reference/en/html/session-configuration.html中也这样说,表3.5 答案 0 :(得分:1)
看起来您可以使用<class-cache>
元素在hibernate.cfg.xml
而不是实体映射中配置缓存,请参阅3.8. XML configuration file。
我想你可以负担得起创建一个使用现有映射的自定义hibernate.cfg.xml
,如果没有,那么Configuration.setCacheConcurrencyStrategy()
个方法也可以提供帮助。