簡體   English   中英

我應該如何在 Spring 數據存儲庫上使用 @Cacheable

[英]How should I use @Cacheable on spring data repositories

例如,在使用MongoRepository ,我想將一些方法標記為@Cacheable例如insert(entity)findOne(id) 由於它是一個 Spring 存儲庫而不是我的,我應該如何在這些方法上使用@Cacheable

不確定您實際如何使用MongoRepository ,您似乎建議您直接使用它(在問題中包含您的代碼通常是個好主意) ,但參考文檔解釋了使用此接口的基礎知識(和事實上,Spring Data 中的所有存儲庫接口): “§ 6.1. 核心概念”

(...)此接口主要用作標記接口,用於捕獲要使用的類型並幫助您發現擴展此接口的接口。 (……)

您的自定義存儲庫將類似於:

public interface SomeTypeMongoRepository extends MongoRepository<SomeType, Long> {
    @Override
    @CacheEvict("someCache")
    <S extends SomeType> S insert(S entity);

    @Override
    @Cacheable("someCache")
    SomeType findOne(Long id);
}

(請注意,它基於我在其中一條評論中包含的官方示例

選項之一可能是在 xml 中進行,如docs中所述。

這種方法的另一個好處是您可以使用單個聲明使多個方法可緩存。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM