Я пытаюсь добавить запись-запись на мою карту ярусного дерева, используя предикат для фильтрации записей.Hazelcast PredicateBuilder с вложенным ключом
Метод Я зову это:
String addEntryListener(MapListener listener,
Predicate<K,V> predicate,
boolean includeValue)
Я пытаюсь построить предикат для фильтрации моего ключа. Мои ключи типа HazelKey
, которые имеют поля:
KeyOne keyOne;
KeyTwo keyTwo;
KeyThree keyThree;
Затем эти три клавиши имеют поле:
String code
Поэтому я пытаюсь сделать что-то вдоль линий:
PredicateBuilder predicate = EntryObject.key().get("keyOne").get("code").equal("1234");
для создания предиката для фильтрации всех записей с помощью значения keyOne 1234.
Однако, как только был добавлен слушатель, записи обновляется, hazelcast бросает ошибку:
Caused by: com.hazelcast.query.QueryException: java.lang.IllegalArgumentException: There is no suitable accessor for 'code' on class 'class com.sun.proxy.$Proxy45'
Я считаю, что это происходит потому, что predicateBuilder просто не обращая внимания на верхний уровень В параметре «KeyOne» и просто используя «код» так мой вопрос: как мне это многоуровневое предикатное строительство?
Заранее спасибо.