我正在使用app引擎后端开发一款Android应用。当我在远程服务器中运行后端应用程序,并使用JPQL查询查询实体时,如下所示,它不返回任何结果。
queryString= "SELECT i FROM Item AS i WHERE i.locationId= :locId ORDER BY i.itemQuantity";
Query q = mgr.createQuery(queryString);
q.setParameter("locId", location);
但是,在本地开发服务器上运行相同的查询时,它会返回结果。
另一个观察结果:如果我们删除参数并仅使用ORDER BY语句使查询保持简单,它将在dev服务器和远程运行中返回结果。
答案 0 :(得分:2)
对于复杂查询,您需要define an explicit composite index。
本地开发服务器在运行时构建它,而在生产服务器上,您需要显式定义复合索引。
对于简单查询,例如只有ORDER BY,复合索引不是必需的,所以你得到了预期的结果。