Я работал с spring-ehcache-annotations и столкнулся со следующим сценарием:
У меня есть простой POJO следующим образом
class Person{
private Long id;
private String name
//some code
}
Теперь в DAO у меня есть
public Person getPerson(Long personId){}
public Person UpdatePerson(Person person){}
Теперь в обновлении человека мне нужен параметр класса Person, и мне нужно использовать personId человека в качестве ключа для кэширования.
Этого можно добиться, внедрив CacheKeyGenerator. для каждого класса или размещения блоков if/else, но можем ли мы иметь какую-то настраиваемую вещь, чтобы указать поле параметра, которое будет использоваться в качестве ключа?
@Cacheable(key="#person.personId")
. - person Tomasz Nurkiewicz   schedule 06.10.2011