如果方法参数是接口,如何制作缓存键

How to make cache key if method parameter is Interface

我有一个接受 org.springframework.data.domain.Pageable 作为参数的方法。 当用户请求 page = 0 和 size = 20 等等时,我想将这些传递的值设置为 cache key

我做的是

@Cacheable(key = "#pageable.number")
public Person getPersons(Pageable pageable) 

它给了 axception :

EL1008E: Property or field 'number' cannot be found on object of type 'org.springframework.data.domain.PageRequest' - maybe not public?

如何制作缓存键呢?

属性 被称为 pageNumber 而不是 number

@Cacheable(key = "#pageable.pageNumber")
public Person getPersons(Pageable pageable) 

虽然可以质疑以这种方式使用缓存的一般意义。但这可能超出了这个问题的范围。