我正在設置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