Моя сущность содержит это поле:
@Embedded
public Map<String, Integer> map;
В запросе, который я хочу отфильтровать по этой карте, все элементы должны иметь один и тот же ключ/значение карты, переданной в параметре.
Я попробовал это, как было предложено здесь:
for (Entry<String, Integer> e : myMap.entrySet()) {
query.filter("map." + e.getKey(), e.getValue());
}
Это работает, но у меня есть предупреждения, и мне это не нравится:
[warn] o.m.m.q.QueryValidator - The type(s) for the query/update may be inconsistent; using an instance of type 'java.lang.Integer' for the field 'models.MyModel.map' which is declared as 'java.util.Map'
[warn] o.m.m.q.QueryValidator - Validation warnings:
[Validation failed: 'Type java.util.Map may not be queryable with value '2' with class java.lang.Integer']
Поэтому я ищу другой способ сделать это. Я пробовал все это, и никто не работает:
query.field("map").equal(myMap);
query.filter("map", myMap);
query.field("map").hasAllOf(myMap.entrySet());
query.field("map").hasAllOf(myMap.keySet());
Это проблема порядка карт или что-то еще? Любые идеи ? Спасибо.