Я интегрирую Spring-Data-mongo с query-dsl, поэтому мне нужно сгенерировать Q-файлы для query-dsl запросов. Вот мой заказ POJO:
public class Order {
private List<Map<String,Object>> items;
}
Мой Q файл заказа.java
public class QOrder extends EntityPathBase<Order> {
private static final long serialVersionUID = -682690651L;
public static final QOrder order = new QOrder("order");
public final ListPath<java.util.Map<String, Object>, SimplePath<java.util.Map<String, Object>>> items = this.<java.util.Map<String, Object>, SimplePath<java.util.Map<String, Object>>>createList("items", java.util.Map.class, SimplePath.class, PathInits.DIRECT2);
public QOrder(String variable) {
super(Order.class, forVariable(variable));
}
public QOrder(Path<? extends Order> path) {
super(path.getType(), path.getMetadata());
}
public QOrder(PathMetadata metadata) {
super(Order.class, metadata);
}
}
и пример заказа json:
{
"items": [{
"itemName": "phone",
"quantity": <Integer-Number>
}
]
}
Теперь я хочу получить все ордера из Монго, для которых любой элемент существует с количеством 1. Теперь я генерирую свойПредикат, как показано ниже."QSensorData.sensorData.data.any (). Eq ( Some-QueryDSL-Expression )".
Я не могу определить, что нужно передать в метод eq для фильтрации вложенных значений карты.