【发布时间】:2012-07-08 13:07:22
【问题描述】:
我正在使用 Spring 缓存 API,但遇到了一个问题: 我有一个带有 CRUD 操作的 Dao 类,我想做的就是缓存一个无参数方法,它返回一个对象映射(键 - id,值 - 实体)
class Dao implements IDao<Entity>{
public Map<Integer, Entity> getAllEntities(){ /* retreiving from DB */ }
public Entity getEntityByKey(Object key) { ... }
public void insert(Entity entity){...}
public void update(Entity entity){...}
public void delete(Entity entity){...}
}
谁能告诉我如何准确(和正确地)缓存 getAllEntities() 方法以获取实体,缓存 getEntityByKey 以按键获取实体,并且还能够在我执行创建、更新或删除操作时更新缓存? 是否可以在更新后使用方法 getAllEntities 的可缓存版本(使用操作插入、更新、删除)?
【问题讨论】:
-
顺便说一句 - 如果这是您的应用程序中普遍关心的问题,您是否考虑过使用 Hibernate 和它的二级缓存?
-
不,我使用 jdbcTemplate 并且没有使用 Hibernate 的能力
标签: java spring caching annotations