3

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 のキャッシュ可能なバージョンを使用することは可能ですか (操作の挿入、更新、削除を使用)?

4

1 に答える 1

0

これを試して

class Dao implements IDao<Entity>{

    @Cacheable(value = "entity.all")
    public Map<Integer, Entity> getAllEntities(){ /* retreiving from DB */ }

    @Cacheable(value = "entity.item", key="#p0")
    public Entity getEntityByKey(Object key) { ... }

    @CacheEvict(value = {"entity.all", "entity.item"}, allEntries=true)
    public void insert(Entity entity){...}

    @CacheEvict(value = {"entity.all", "entity.item"}, allEntries=true)
    public void update(Entity entity){...}

    @CacheEvict(value = {"entity.all", "entity.item"}, allEntries=true)
    public void delete(Entity entity){...}

}
于 2012-07-09T11:52:35.417 に答える