我正在设置Hibernate缓存并希望缓存不同区域中的某些实体。例如,一些实体可能会“陈旧”达5分钟,有些实体可能会持续一个小时,有些实体(如查找)在几周内不会改变。为了促进地区的简易配置在我的代码,我想以下几点:Java中的注释注解5/6
我创建(@DailyCache
和等)
@Cache(region = "lookups", usage = CacheConcurrencyStrategy.READ_ONLY)
@Retention(RetentionPolicy.RUNTIME)
public @interface LookupCache {}
命名为@LookupCache
注释而且我还说注解到我的休眠/ JPA实体:
@LookupCache
public class Course {}
这样一来,我可以很容易地改变区域或@LookupCache
的属性,而不必更改每个类的注释PARAMS。
但是,缓存加载器不会选取此继承的@Cache
表示法。如何获得@LookupCache
注释以继承应用于其的注释?
更新:为了澄清,@Cache注释是由EHCache等二级缓存使用的内置hibernate注释。我无法修改@Cache注释以使其可以被其他注释继承(我的客户端不想维护一个特殊的休眠分支)。这可能是我唯一的选择。
注解不能像那样工作,恐怕。没有像你正在寻找的“继承”,这是由Hibernate明确做到的,这不会发生,因为它是一个自定义注释。 – skaffman 2009-11-25 17:15:46
干这么多。谢谢。 – 2009-11-25 17:40:51