2012-04-20 155 views
2

我想這JDO查詢轉換爲物化查詢某個值:如何查詢如果列表包含

Query query = pm.newQuery(User.class, 
     "someList.contains(userParam) && someProperty== null"); 
    query.declareParameters("String userParam"); 
    query.setRange(0, 1); 
    query.execute(user.getId()); 

這是我執行客體然而我不知道這是否是正確的:

Query<Question> queryResult = dao.query().filter("someProperty", null) 
      .filter("someList.contains", user.getId()) 
      .limit(1); 

回答

1

Objectify像Java低級API一樣工作。只要使用就行了財產的平等過濾器:

Query<Question> queryResult = dao.query(User.class) 
     .filter("someProperty", null) 
     .filter("someList", user.getId()) 
     .limit(1); 
+0

如果您想查詢'不null',可能你只需要添加操作數?即:'filter(「someProperty!=」,null)' – 2016-02-28 21:10:55

+0

是的,但這被認爲是一種具有輕微不尋常行爲的不等式過濾器 - 閱讀GAE文檔中有關查詢和索引的註釋!=。 – stickfigure 2016-02-29 01:54:13