У меня есть приложение Spring Boot, использующее аннотации Spring Caching.
Теперь я хочу перейти на аннотации JSR-107 (JCache).
Это мой метод:
@Cacheable(value = "results", key = "#input.id")
public CalculatorResult calculate(CalculatorInput input, Operation operation) {
// Code omitted for simplicity
}
И я хочу, чтобы мой новый метод был примерно таким:
@CacheResult(cacheName = "results")
public CalculatorResult calculate(@CacheKey CalculatorInput input, Operation operation) {
// Code omitted for simplicity
}
Класс CalculatorInput:
public class CalculatorInput {
private String id;
private Double num1;
// Getters and setters omitted for simplicity
}
Аннотация @CacheKey указывает пружине хранить весь объект CalculatorInput в качестве ключа. Я хотел бы использовать в качестве ключа только идентификатор атрибута класса CalculatorInput.
Как я могу создать ключ кеша (как я делал с аннотацией кеширования Spring), но используя JCache?
Спасибо.