Я пытаюсь найти HazelcastJsonValue, пример данных для того же.
class A {
B[] listOfB;
}
class B {
int num;
String name;
}
Объект 'A' присутствует в Hazelcast как HazelcastJsonValue, и я хочу создать запрос, который выбирает все объекты, содержащие B, для которыхnum = 10 и name = тестовый запрос Hazelcast для поиска в массиве с использованием предиката
Predicate.equal("listOfB[any].name","test")
для вышеуказанного запроса сценария, который я могу сделать с помощью предикатов
Predicate[] arrayOfPredicate = {Predicates.equal("listOfB[any].num",10)
,Predicates.equal("listOfB[any].name","test")};
Predicate p = Predicates.and(arrayOfPredicate);
System.out.println(p.toString()); // (listOfB[any].num=10 AND listOfB[any].name=test)
Пример данных в Hazelcast
[
{
"listOfB": [
{
"num": 10,
"name": "ab"
},
{
"num": 11,
"name": "test"
}
]
},
{
"listOfB": [
{
"num": 10,
"name": "test"
},
{
"num": 12,
"name": "xyz"
}
]
},
{
"listOfB": [
{
"num": 30,
"name": "abc"
}
]
}
]
Hazelcast-запрос для того же
(listOfB [любой] .num = 10 И listOfB [любой] .name = test) Но это не дает желаемых результатов, вместо этого результат ниже
[
{
"listOfB": [
{
"num": 10,
"name": "ab"
},
{
"num": 11,
"name": "test"
}
]
},
{
"listOfB": [
{
"num": 10,
"name": "test"
},
{
"num": 12,
"name": "xyz"
}
]
}
]
Желаемые результаты:
{
"listOfB": [
{
"num": 10,
"name": "test"
},
{
"num": 12,
"name": "xyz"
}
]
}
Как получить желаемые результаты?