Spring Cache con colección de artículos / entidades

Estoy usando Spring Cache, donde paso una colección de claves, y la devolución es una lista de entidades. Me gustaría que el marco de almacenamiento en caché comprenda que cada elemento de la lista de retorno debe almacenarse en caché con el código correspondiente. Por el momento, parece que la clave es la lista completa, y si me falta una clave en la siguiente llamada, intentará volver a cargar toda la colección.

@Override
@Cacheable(value = "countries")
public List<Country> getAll(List<String>codes) {
    return countryDao.findAllInCodes(codes);
}

Otra posibilidad es que el retorno sea un mapa, de manera similar me gustaría que el caché sea lo suficientemente inteligente como para consultar solo elementos que nunca antes se consultaron, también para almacenarlos en caché con su clave.

@Override
@Cacheable(value = "countries")
public Map<String,Country> getAllByCode(List<String>codes) {
    return countryDao.findAllInCodes(codes);
}

Supongamos que la clase de país se ve así:

class Country{
  String code; 
  String fullName;
  long id;

... // getters setters constructurs etc.. 
}

¿Es esto posible con Spring Cache?

Respuestas a la pregunta(1)

Su respuesta a la pregunta