每个页面的Spring可分页缓存键

每个页面的Spring可分页缓存键,spring,spring-data,spring-cache,Spring,Spring Data,Spring Cache,我试着做一些像下面这样的事情 @Cacheable(value = ACTIVE_DATA_CONFIGURATION_CACHE, key = "#tenant.id.concat('-').concat(#pageable.page)") public Page<DataConfiguration> findAllByTenant(final Pageable pageable, final Tenant tenant) { } 对于您的用例,请尝试使用KeyG

我试着做一些像下面这样的事情

@Cacheable(value = ACTIVE_DATA_CONFIGURATION_CACHE, key = "#tenant.id.concat('-').concat(#pageable.page)")
    public Page<DataConfiguration> findAllByTenant(final Pageable pageable, final Tenant tenant) {
    }

对于您的用例,请尝试使用
KeyGenerator

@Cacheable(value = "doOneThing", keyGenerator = "CustomGenerator")
大概是这样的:

public class CustomGenerator implements KeyGenerator {

 public Object generate(Object target, Method method, Object... params) {
    String code = "UNIQUE_CODE"; // implements logic from params
    return code;
 }

}

对于您的用例,请尝试使用
KeyGenerator

@Cacheable(value = "doOneThing", keyGenerator = "CustomGenerator")
大概是这样的:

public class CustomGenerator implements KeyGenerator {

 public Object generate(Object target, Method method, Object... params) {
    String code = "UNIQUE_CODE"; // implements logic from params
    return code;
 }

}

由于Pageable没有属性页,如果您尝试将密钥生成为
{tenant.id}-{pageNumber}
,则可以将键值更改为
{tenant.id.concat('-')。concat(#Pageable.pageNumber)
作为Pageable没有属性页,如果您尝试将密钥生成为
{tenant.id}-{pageNumber}
,您可以将键值更改为
#tenant.id.concat('-').concat(#pageable.pageNumber)

我可以在键生成器中获取pageable参数吗,它在对象中。。。paramsCan我在键生成器中获得可分页参数,它在对象中。。。params