Я хотел бы добавить @CacheEvict()
декоратор к моим методам save / saveAll из моего репозитория.
Я попытался переопределить методы с помощью пользовательской реализации, прочитав эту тему но я не хочу переписывать реализацию метода, просто вызову стандартную с большим поведением.Ни одно из представленных решений не подходит для моего случая или требует слишком большой настройки.
@Transactional(readOnly = true)
@Repository
public interface MyRepository extends JpaRepository<MyEntity, Long> {
// This is working fine as its a custom query method
@Cacheable(value = "ENTITIES")
MyEntity findByCategory(String category);
// This isn't working as it won't implement the function correctly. Save don't work anymore here.
@CacheEvict(value = "ENTITIES", key = "#entity.hashCode()")
<S extends MyEntity> S save(S entity);
}
Я мог бы вызвать удаление кэша вручную из тела метода, но я не могу просто переопределить save()
метод и вызов super.save()
, так как я использую только интерфейсы и позволяю Spring генерировать реализацию.
Любые советы?