Playframework 玩CRUD中的MorphiagallargumentException

Playframework 玩CRUD中的MorphiagallargumentException,playframework,morphia,Playframework,Morphia,当我试图通过如下方式传递where子句来自定义CRUD的list()函数时: where = "state in (Punjab,Jammu and Kashmir)"; List objects = type.findPage(page, search, searchFields, orderBy, order, where); 我得到了一个如下的IllegalArgumentException: IllegalArgumentException occured : invalid wher

当我试图通过如下方式传递where子句来自定义CRUD的list()函数时:

where = "state in (Punjab,Jammu and Kashmir)";
List objects = type.findPage(page, search, searchFields, orderBy, order, where);
我得到了一个如下的IllegalArgumentException:

IllegalArgumentException occured : invalid where clause: state in (Punjab,Jammu and Kashmir).
我相信这是MorphiaPlugin在这个MorphiaPlugin行中有一个“and”的地方分裂

String[] propValPairs = where.split("(and|&&)");
有解决办法吗?我如何在where子句中转义单词和“? 我正在使用Play 1.2.5和morphia-1.2.9。

在您的“in”表达式中,您应该将“and”替换为“,”


邦(旁遮普、查谟和克什米尔)
=>
邦(旁遮普、查谟和克什米尔)

查谟和克什米尔是一个单一实体!就这一点而言,即使是北方汗国也是一个问题。简而言之,任何带有“and”的条件都是“非法参数”。