在远程服务器中运行时,JPA查询不返回结果

时间:2014-11-07 07:04:22

标签: android jpa google-app-engine

我正在使用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服务器和远程运行中返回结果。

1 个答案:

答案 0 :(得分:2)

对于复杂查询,您需要define an explicit composite index

本地开发服务器在运行时构建它,而在生产服务器上,您需要显式定义复合索引。

对于简单查询,例如只有ORDER BY,复合索引不是必需的,所以你得到了预期的结果。