Запрос данных Hazelcast с массивами внутренних объектов с использованием предиката - PullRequest
0 голосов
/ 23 января 2020

У меня есть пользовательский объект, который имеет внутренний объект типа Address. Ниже приведены структуры как пользователя, так и адреса.

User{
String name;
String id;
String phoneNumber;
List<Address> address
}

Address{
String type;
String streetName;
String houseNumber;
String Country;
int pin
}

Я храню пользовательские объекты в кэше Hazelcast. Я хотел бы запросить пользователей с типом адреса «Основной» и страной «США».

Проблема, с которой я сталкиваюсь, состоит в том, что у каждого пользователя может быть несколько адресов, как l oop через адрес и найдите тот, который имеет тип "Основной" и для этого конкретного типа адреса, как запросить страну "США". Можем ли мы использовать предикат для достижения этой цели? Если это так, пожалуйста, помогите мне с тем, как можно построить предикат.

1 Ответ

0 голосов
/ 24 января 2020

Пожалуйста, отметьте Запросы в коллекциях и массивах в документации Hazelcast.

В вашем случае вы хотели бы иметь два условия для зависимой коллекции, например:

  • Predicates.equal("address[any].country", "US")
  • Predicates.equal("address[any].type", "Primary")

Но any должен применяться к той же сущности (потому что вы хотели бы иметь US как Primary страна). Я не думаю, что вы можете достичь этого только с помощью предикатов.

Однако вы можете использовать Настраиваемые атрибуты и определить свои собственные ValueExtractor, которые будут охватывать логику c тебе нужно.

...