Ehcacheのデフォルトのキー生成がどのように機能するか知っている人はいますか?次の方法がある場合:
@Cacheable(cacheName = CACHE_KEY) // CACHE_KEY is static final field.
public List<DataObject> list(
int firstRecord, int maxRecords, int pageSize, FilterObject filter) {
....
}
カスタムPOJOはどこにFilterObject
ありますか?実際のキャッシュキーは何であると期待できますか?
私が観察しているのは、異なるFilterObject
インスタンスを使用し、メソッド呼び出しの他の引数を変更しない場合、常に同じ結果が生成されることです。最初の呼び出しの結果はキャッシュされて返されます。
おそらくFilterObject
、動作を引き起こすのはPOJO.toString()
です。関連するメソッドをオーバーライドしていないため、シリアル化または問題のいずれかであると思います。
それでも、EhcacheのWebサイトと@Cacheable
注釈ドキュメントの両方で、そのようなメソッドのキャッシュキーがどのように形成されているかについての正確な情報を見つけることができませんでした。このトピックに関する情報と推奨事項をいただければ幸いです。