У меня есть сущности, кэшированные с помощью Hibernate 2-го уровня кеша. Я хотел бы удалить (или обновить sh) конкретную сущность из кэша после определенного метода. Как это сделать?
Компания:
@Entity
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class Company implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@NotNull
private Boolean hidden;
@OneToMany(mappedBy = "company", fetch = FetchType.EAGER)
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
private Set<Treatment> treatments = new HashSet<>();
...
}
Метод:
// @CacheEvict(value = "com.bloombooking.app.domain.Company", allEntries = true) -> Works but evict all entries
@CacheEvict(value = "com.bloombooking.app.domain.Company", key = "#treatment.company") // Doesn't work
public Treatment save(Treatment treatment) {
log.debug("Request to save Treatment : {}", treatment);
return treatmentRepository.save(treatment);
}