Ich benutze neueste Ehcache in meiner Spring 4.1.4 Anwendung. Was ich habe, ist:Spring @Cacheable Methoden mit Listen
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());
}
Was ich erreichen möchte ist, dass die Kontakte im Cache gespeichert sind, und wenn ich wieder die getContactList
Methode bin Aufruf, dass alle Kontakte, deren id
bereits aus dem abgerufene zwischengespeichert Cache und die anderen sollten normalerweise abgefragt und dann zwischengespeichert werden. Dieser Cache sollte dann die zwischengespeicherte Kontakteinheit aktualisieren, wenn sie aktualisiert wird.
Ich verwende einfache Spring JDBC und Ehcache, keine JPA und kein Hibernate.