【问题标题】:How to change the hibernate entity cache configuration at run time如何在运行时更改休眠实体缓存配置
【发布时间】:2012-03-28 21:48:52
【问题描述】:

我正在使用基于注释的配置来为所有休眠实体配置缓存策略,如下所示

@Entity
@Table(name = "EMP")
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class EMPLOYEE extends AbstractEntity { 

我们有共同的项目来维护所有休眠实体类。我们将构建一个 jar 并在不同的应用程序中使用它。我们在两个应用程序中使用这个实体 jar。我必须对两个应用程序使用不同的缓存策略。 对于 application1 ,我必须使用 @Cache(usage = CacheConcurrencyStrategy.READ_WRITE) 对于应用程序 2,我必须使用 @Cache(usage = CacheConcurrencyStrategy.READ_ONLY)。

所以我想在运行时为 application2 动态更改这些配置设置。

感谢,如果有人可以建议该方法。

【问题讨论】:

    标签: hibernate ehcache


    【解决方案1】:

    您不必更改类运行时的缓存策略。你只需要有一个带有这样常量的单独类:

    public abstract class Settings {
       public static final CacheConcurrencyStrategy CACHE_STRATEGY;
    
       static {
          // initialize the field, e.g. based on a value from a properties file
       }
    }
    
    then 
    
    @Entity
    @Table(name = "EMP")
    @Cache(usage = Settings.CACHE_STRATEGY)
    public class EMPLOYEE extends AbstractEntity {...}
    

    然后只需有两个不同的文件,它们具有不同应用程序的属性。

    附:它不必是具有常量的单独类。从我的角度来看,这只是一个如何更好地组织事物的示例。

    【讨论】:

      猜你喜欢
      • 2018-08-12
      • 2010-11-23
      • 2015-07-19
      • 1970-01-01
      • 2015-01-09
      • 1970-01-01
      • 2014-01-12
      • 1970-01-01
      • 2013-03-18
      相关资源
      最近更新 更多