@CacheEvictと@Cacheableアノテーションを1つのメソッドで呼び出そうとしています。 @CacheEvictの呼び出しで@CacheEvictと@Cacheableアノテーションを1つのメソッドで呼び出す?
@CacheEvict(value = "tripDetailsDashboardCache", key = "#userId")
@Cacheable(value ="tripDetailsDashboardCache", key="#userId")
public List<DashBoardObject> getAllDetailsForDashBoard(Integer userId){
List<Master> masters = tripDetailsService.getTripDetailsForCaching(userId);
List<DashBoardObject> dashBoardObject = tripDetailsService.getMasterDetailsForDashBoard(userId, masters);
return dashBoardObject;
}
は、私は特定のキーのためにキャッシュされたデータを削除すると、再び私は、メソッドのレスポンスの新鮮なデータをキャッシュしたいです。しかし、それは新鮮なデータをキャッシュしていませんか?そして、それは何の誤りも与えていないのですか?
私は別々のキャッシュ可能およびキャッシュエビクトメソッドを作成しました。それは私が必要とするように動作していません。要件は私はチケットを予約する、それはDBに格納されます、その後、私はこれらの2つのキャッシュメソッドを呼び出す、次に私はキャッシュからデータを取る必要がありますその時ダッシュボードのボタンをクリックしますが、それは取っていません。エラーなし。 –
私はCacheEvictとCacheableの両方を同じメソッドで呼びたいと思っています。最初にキャッシュからデータを削除してから、新しいデータをロードしたいからです。両方のアノテーションを同じメソッドで呼び出すことは可能ですか? –
"beforeInvocation = true"設定を使用できます。誰が勝つのかを予測することは難しい:CacheEvictまたはCacheable – Yura