我想使用@Cacheable中的密钥或任何其他机制

时间:2016-03-03 11:03:40

标签: java spring hibernate caching ehcache

您好我需要帮助我是新手来缓存数据。我在使用xml配置的spring应用程序中使用ehcache,我想在不同的方法上使用不同的键来查找相同的记录。假设,一个方法注释如下:

@Cacheable(value="getCustomerByAreaId",key="T(java.lang.String).valueOf(#areaid)")
public  List<Customer> getCustomerByAreaId(String areaid) {
    //code 
    return customerList;
}

它将返回具有相同区域ID的所有客户。此列表将存储在缓存中,因为每个客户都有唯一的客户ID。我可以使用某种机制根据客户ID从cache = getCustomerByAreaId获取单个客户记录。

@Cacheable(value="getCustomerByAreaId",key="T(java.lang.String).valueOf(#customerId)") public Customer getCustomerById(long customerId) { // code return customer; }

我知道如果我像这样制作密钥,它将使用新密钥在缓存(getCustomerByAreaId)中输入新记录。 相反,我想从已经缓存的列表中获取记录。

如果可以,我可以使用xml或java。

我正在使用ehcache 2.5版。

1 个答案:

答案 0 :(得分:0)

仅使用Ehcache API或Spring的缓存抽象是不可能的。

如果你想实现这个目标,你必须编写自己的逻辑来缓存列表,还要单独缓存它的元素。