我想在 findOne 方法中添加“Cacheable”注解,并在 delete 或发生方法发生时驱逐缓存。
我该怎么做?
最佳答案
virsir,如果您使用 Spring Data JPA(仅使用接口(interface)),还有另一种方法。这是我所做的,用于类似结构化实体的通用 dao:
public interface CachingDao<T, ID extends Serializable> extends JpaRepository<T, ID>, JpaSpecificationExecutor<T> {
@Cacheable(value = "myCache")
T findOne(ID id);
@Cacheable(value = "myCache")
List<T> findAll();
@Cacheable(value = "myCache")
Page<T> findAll(Pageable pageable);
....
@CacheEvict(value = "myCache", allEntries = true)
<S extends T> S save(S entity);
....
@CacheEvict(value = "myCache", allEntries = true)
void delete(ID id);
}
关于spring - 如何在 Spring Data JPA CRUDRepository 中添加缓存功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13914480/