Sto usando l'ultima versione di Ehcache nella mia applicazione Spring 4.1.4. Quello che ho è:Spring @Metodi memorizzabili con liste
class Contact{
int id;
int revision;
}
@Cacheable("contacts")
public List<Contact> getContactList(List<Integer> contactIdList) {
return namedJdbc.queryForList("select * from contact where id in (:idlist)", Collections.singletonMap("idlist", contactIdList));
}
@CachePut(value="contact", key = "id")
public void updateContact(Contact toUpdate) {
jdbctemplate.update("update contact set revision = ? where id = ?", contact.getRevision(), contact.getId());
}
Quello che voglio ottenere è, che i contatti sono memorizzati nella cache, e quando sto chiamando di nuovo il metodo getContactList
, che tutti i contatti il cui id
è già memorizzata nella cache vengono recuperati dal cache e gli altri dovrebbero essere interrogati normalmente e quindi memorizzati nella cache. Questa cache dovrebbe quindi aggiornare l'entità di contatto memorizzata nella cache quando viene aggiornata.
Sto usando Spring JDBC ed Ehcache, nessun JPA e nessun Hibernate.