Использует ли SQLPredicate на карте ореховой лист Set (согласно документации) или arraylist? Я использую клиент и сервер v3.2.4. Клиент подключается к серверу и выполняет следующий вызов (это работает на одном сервере, но теперь, когда я использую клиент, я не уверен, что вызывает проблему).
Predicate testPredicate = equal("testGroupID", 101); //testGroupID is attribute
Set<testObj> testInstances = (Set<testObj>)testMap.values(testPredicate);
Во второй строке я получаю следующее исключение:
Java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.util.Set
Вы не используете SQLPredicate
а Predicates.equal
. Однако это боковая точка. Главное - API:
Collection<V> values(Predicate predicate)
Итак, не упоминание values()
возвращающих Set
, и действительно, вы не получили Set
.
Наконец, поскольку на карте можно юридически иметь повторяющиеся значения, вы, вероятно, не захотите вернуть Set
.