Datastoreにアクセスする際に以下のエラーが出るケースがあります。
Caused by: com.google.api.client.http.HttpResponseException: 412 Precondition Failed no matching index found. at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:1047) at com.google.api.services.datastore.client.RemoteRpc.call(RemoteRpc.java:77) ... 64 more
これはORDER指定時にINDEXが貼ってないと出るエラーになります。
/** * * @param key * @return * @throws DatastoreException */ public static List<Entity> listHoge(Key key) throws DatastoreException { Query.Builder query = Query.newBuilder(); query.addKindBuilder().setName("Hoge"); query.setFilter(DatastoreHelper.makeFilter( "User", PropertyFilter.Operator.EQUAL, DatastoreHelper.makeValue(key))); /* * query.addOrder(DatastoreHelper.makeOrder( "Target", * PropertyOrder.Direction.ASCENDING)); */ return runQuery(query); }