У меня есть 2 доменных объекта Price
и Product
, определенных ниже.
public class Price {
private Long id;
private Double basePrice;
private Double tax;
private Double maxRetailPrice;
}
public class Product {
private Long id;
private String title;
private Price price;
}
Я определил Controller
метод, как показано ниже:
@GetMapping("{id}")
@Cacheable(value = "product-cache", key = "#id")
public Product getProductById(@PathVariable Long id) {
// some implementation goes here.
}
Есть ли возможность кэшировать как product
, так и price
отдельно с соответствующими полями id
в качестве ключей?
Что-то вроде:
@GetMapping("{id}")
@Caching(cacheable = {
@Cacheable(value = "product-cache", key = "#id"),
@Cacheable(value = "price-cache", key = "???")
})
public Product getProductById(@PathVariable Long id) {
// some implementation goes here.
}
Как сохранить часть price
объекта product
в price-cache
с ключом id
объекта price
.
Я пробовал несколько способов и комбинаций, используя SpEL, но не смог заставить его работать.
Если кто-нибудь пробовал что-то подобное, пожалуйста, помогите мне.
Спасибо.