Я использую Spring 3.1 Cache, используя EhCache в настоящее время для реализации кэширования методов. Рассмотрим фрагмент кода ниже:
@Cacheable("items")
public Item findByPK(int itemID) {
String sql = "SELECT * FROM ITEM WHERE ITEM_ID = ?";
Item item = getJdbcTemplate().queryForObject(sql, new Object[]{itemID}, new ItemRowMapper());
return item;
}
@Cacheable("items")
public List<Item> findAll() {
String sql = "SELECT * FROM ITEM";
List<Item> items = getJdbcTemplate().query(sql,new ItemRowMapper());
return items;
}
Если я вызываю findByPK(), он сначала обращается к базе данных, а затем к кешу, поэтому кеширование метода работает. найтиВсе() то же самое. Однако есть ли способ указать Spring, чтобы вызовы findByPK() распознавали результаты, возвращаемые findAll()?