Необходимость динамического построения запроса Монго на основе шаблона выражения. Но заметил, что построенный запрос Morphia дает неверные результаты даже при жестко закодированных критериях
Создан BasicDAO с помощью morphia-1.3.2.jar.
Создал модульный тест с System.out.println, создав запрос с ожидаемыми критериями.
System.out.println("Test Query" +
((CriteriaContainerImpl) query1.and(
query1.or(
query1.criteria("_id").equal("234"), query1.criteria("_id").equal("456")
),
query1.and(
query1.or(
query1.criteria("_id").equal("789"), query1.criteria("_id").equal("666")
),
query1.criteria("_id").equal("459")
)
)
)
.getQuery().toString());
Фактический результат:
{ query: { "_id" : "459", "$or" : [{ "_id" : "789" }, { "_id" : "666" }] } }
Это результат, полученный как часть вышеприведенного оператора печати.
Ожидаемый результат:
{query:
{ "$and":[
{ "$or" : [{ "_id" : "234" }, { "_id" : "456" }] } ,
{"$and":[
{ "$or" : [{ "_id" : "789" }, { "_id" : "666" }] },
{"_id":459}
]
} ] }}