Spring over Ehcacheによって提供されるアノテーションを使用して、おそらくSpEl式を使用して、条件を満たすエントリを削除したいと思います(例:エントリの削除endDate> now)。
そんな感じ :
@CacheEvict(value = Array("intensities"), condition = "samples.end > now")
def save(samples: Samples[Intensity]) = {
...
}
より高度なエビクション機能は、基盤となるEhcache実装に固有であるため、Springが提供する基本的な抽象化では構成できません。セクション28.5.2
およびSpringのドキュメント28.7
を参照してください。
Ehcacheの削除動作をehcache.xml
ファイルで構成できます。コードが達成しようとしていることとまったく同じではありませんが、timeToLiveSeconds
属性は探しているものである可能性があります。詳細については、Ehcacheのドキュメントを参照してください。
考え直してみると、次のSpEL式は、Ehcache固有の設定に触れることなく、意図したとおりに実行されます。
@CacheEvict(
value = Array("intensities"),
condition = "samples.end.after(new java.util.Date())")
def save(samples: Samples[Intensity]) = {
...
}