1

我想对我的应用引擎数据存储应用引擎执行IN查询。这里我面临奇怪的问题。问题是,当我传递单个值到IN条件然后它返回正确的记录,但是当我传递多个值到IN条件然后它返回null响应。如果我在服务器上执行相同的查询,那么它会返回正确的输出。我不知道我的代码有什么问题。我在我的android客户端中使用endpoint类,我将android客户端的值传递给应用引擎后端。请帮我解决这个问题。谢谢。IN条件仅适用于单值数据存储查询 - Google应用引擎

UPDATE:

我改变了我的代码,如下图所示,现在我传递的ArrayList作为参数,它的工作。

代码:

@SuppressWarnings({ "unchecked", "unused" }) 
      @ApiMethod(name = "getUserFavouriteFeed", httpMethod = HttpMethod.GET, path = "userfeedmasterendpoint/userName_fk1") 
      public CollectionResponse<tableFresopnce> getUserFavouriteFeed(
        @Named("uname") ArrayList<String> uname, 
        @Nullable @Named("cursor") String cursorString, 
        @Nullable @Named("limit") Integer limit) { 

       EntityManager mgr = null; 
       Cursor cursor = null; 
       List<UserFeedMaster> execute = null; 

       try { 
        mgr = getEntityManager(); 
        Query query = mgr 
          .createQuery("select f from tableF f where f.isDeleted=:delStatus and f.userName in (:uname)"); 


        query.setParameter("uname", uname); 

        query.setParameter("delStatus", false); 

        if (cursorString != null && cursorString != "") { 
         cursor = Cursor.fromWebSafeString(cursorString); 
         query.setHint(JPACursorHelper.CURSOR_HINT, cursor); 
        } 

        if (limit != null) { 
         query.setFirstResult(0); 
         query.setMaxResults(limit); 
        } 

        execute = (List<UserFeedMaster>) query.getResultList(); 
        cursor = JPACursorHelper.getCursor(execute); 
        if (cursor != null) 
         cursorString = cursor.toWebSafeString(); 

        // Tight loop for fetching all entities from datastore and 
        // accomodate 
        // for lazy fetch. 
        for (UserFeedMaster obj : execute) 
         ; 
       } finally { 
        mgr.close(); 
       } 

       return CollectionResponse.<tableFresopnce> builder().setItems(execute) 
         .setNextPageToken(cursorString).build(); 
      } 

回答

2

您无法通过“用户名1,用户名2”,并期望任何结果,除非你有别人使用用户名“用户名1,用户名2”。您必须将List传递给IN查询,而不是String。

我认为这是为什么你在使用IN查询blob键(你的上一个问题)时出现错误的原因。

+0

行..感谢mate.i'll试试。 – zanky

相关问题