Тип ключа EhCache

В EhCache при добавлении элемента в кеш:

cache.put(new Element("key1", "value1"));

// Element constructors :
Element(Object key, Object value)

Я вижу, что я могу указать Object как ключевой индекс.

Как я могу использовать это, чтобы иметь "сложный" ключ, состоящий из нескольких int: (userId,siteId,...) вместо строки в качестве индекса?

Спасибо

Ответ 1

Оберните его в новый класс:

public class CacheKey implements Serializable {
    private int userId;
    private int siteId;
    //override hashCode() and equals(..) using all the fields (use your IDE)
}

И затем (предположим, что вы определили соответствующий конструктор):

cache.put(new Element(new CacheKey(userId, siteId), value);

Для простых случаев вы можете использовать конкатенацию строк:

cache.put(new Element(userId + ":" + siteId, value));