【发布时间】:2014-08-19 11:36:57
【问题描述】:
我需要动态创建标准,但我遇到了如何动态创建标准的问题。
我需要与此处 Build dynamic queries with Spring Data MongoDB Criteria 完全相同的内容,但在将 Criteria 列表转换为 toArray 时出现错误,因为它一直说 orCriteria 不支持 Criteria[]
这是我目前的努力
这是我的查询结构
{
"query":{
"where":[{
"or":[
{
"fieldName":"title","fieldValue":"Demo Event NEW YORK IIII22222",
"operator":"equal"
},
{
"fieldName":"createdBy","fieldValue":"system",
"operator":"equal"
}
]
}
]
}
}
这是我解析它以创建标准
if(null != eventSearch.getQuery())
{
if(null != eventSearch.getQuery().getWhere() && eventSearch.getQuery().getWhere().size()> 0)
{
for (Where whereClause : eventSearch.getQuery().getWhere()) {
if(null != whereClause.getOr() && whereClause.getOr().size() > 0){
for (Field field: whereClause.getOr()) {
if(field.getOperator().equalsIgnoreCase(QueryOperator.IS))
{
// So i need to append an or Condition to main query for each or object in my query can anyone tell me how can i achieve this?
query.addCriteria(Criteria.where(whereClause.getFieldName()).gte(whereClause.getFieldValue()));
}
}
}
}
}
我需要将所有带有 in 或 object 的 where 子句作为参数传递给 orOperator 函数
Criteria c = new Criteria().orOperator(Need to pass my where clauses here);
【问题讨论】:
标签: spring mongodb spring-data-mongodb