PojoQueryBuilder返回所有结果进行精确搜索

时间:2015-02-24 14:34:14

标签: marklogic

我在MarkLogic服务器中有JSON文件:

<?xml version="1.0" encoding="UTF-8"?>
 <json type="object" xmlns="http://marklogic.com/xdmp/json/basic">
  <com.search.ex.Person type="object">
   <name type="object">
    <com.search.ex.Name type="object">
     <firstName type="string">John</firstName>
     <lastName type="string">Doe</lastName>
    </com.search.ex.Name>
   </name>
   <gender type="string">MALE</gender>
   <age type="number">27</age>
   <birthplace type="string">Albany, NY</birthplace>
   <ssn type="string">123-45-6789</ssn>
  </com.search.ex.Person>
 </json>

我正在尝试搜索记录是否存在'出生地'为'notpresent',这里不是:

PojoRepository<Person, String> repo = client
            .newPojoRepository(Person.class, String.class);
repo.search(qb.value("birthplace", "notpresent"), 1);

虽然出生地不匹配,但它返回一条记录。

在Person.java中,class age被定义为private String birthplace; ..

这里出了什么问题......

1 个答案:

答案 0 :(得分:3)

@Goel,看起来您正在使用MarkLogic Server 7.0(ML7)。我可以告诉你,因为你看到<json type="object" xmlns="http://marklogic.com/xdmp/json/basic">只在ML7中,因为MarkLogic 8.0(ML8)存储了原生JSON。 PojoQueryBuilder和所有java-client-api版本3.x仅与ML8兼容。你能用ML8再试一次吗?