キーを使って検索をする場合には、一旦IDからキーを作成します。
DatastoreHelper.makeKey("テーブル名", キーの数字).build();
のようにします。GQLで書くところの Kind(“テーブル名”, キーの数字)に該当します。
/** * @return * @throws DatastoreException */ public static Entity getUserByuId(Long uId) throws DatastoreException { Query.Builder query = Query.newBuilder(); query.addKindBuilder().setName("Users"); Key userKey = DatastoreHelper.makeKey("Users", uId).build(); query.setFilter(DatastoreHelper.makeFilter( "__key__", PropertyFilter.Operator.HAS_ANCESTOR, DatastoreHelper.makeValue(userKey))); List<Entity> result = runQuery(query); if (result != null && result.size() > 0) { return result.get(0); } return null; }