2015-11-26 1 views
2

J'utilise des données de ressort et un cache.Méthode de mise en cache par défaut du référentiel de données de ressort

Y at-il un moyen de mettre du cache sur les méthodes par défaut du référentiel (findOne ...) sans redéclasser ces méthodes dans l'interface que nous créons?

public interface AccountOperationRepository extends JpaRepository<AccountOperation, Long>{ 
    @Cacheable(value = "myCache") 
    AccountOperation findOne(Long id) 
} 

Répondre

-2

Vous pouvez vous mettre en œuvre dao possédez, pour des informations de base:

public interface CachedDAO<T, ID extends Serializable> extends JpaRepository<T, ID>, JpaSpecificationExecutor<T> { 

@Cacheable(value = "cacheValue") 
T findOne(ID id); 

@Cacheable(value = "cacheValue") 
List<T> findAll(); 

@Cacheable(value = "cacheValue") 
Page<T> findAll(Pageable pageable); 
//Evict because you want to modify value 
@CacheEvict(value = "cacheValue", allEntries = true) 
<S extends T> S save(S entity); 
//the same with delete 
@CacheEvict(value = "cacheValue", allEntries = true) 
void delete(ID id); 
} 

Vous devez chercher un peu plus, elle pourra être utile.

+0

chaque objet utilisera le même nom pour le cache? –

+0

Non, vous devriez avoir des uniques –