Ive essayé un millier de choses. En ce moment, la seule façon pour moi d'interroger quoi que ce soit est d'obtenir la liste entière et de la parcourir de cette façon! ce qui prend beaucoup de temps. Comment puis-je interroger quelque chose dans google app engine, par exemple tirer seulement les entités qui ont> 100 votes par exemple.utiliser le curseur pour interroger à partir de google app moteur dans android
J'ai essayé le curseur utilisateur, mais je ne sais pas comment cela fonctionne. Je sais qu'il peut utiliser un curseur mais comment puis-je le configurer avec google app engine puisque ma base de données n'est pas dans mon application par exemple?
Ive a essayé ... mais cette dose ne fonctionnera pas du tout ..
Cursor cursor = ("select * from Votes WHERE Votes >" + 250 , null);
quotes endpoint.listquotes().setCursor(cursor).execute();
et
String query = ("select * from Votes WHERE Votes >= 40");
quotes endpoint.listquotes().setCursor(query).execute();
Im suivant l'exemple tic-tac-toe https://github.com/GoogleCloudPlatform/appengine-endpoints-tictactoe-java et https://developers.google.com/eclipse/docs/endpoints-addentities Dans l'exemple que je viens commuté des notes pour des citations.
Hérite mon code actuel par exemple sur comment obtenir les entités.
protected CollectionResponseQuotes doInBackground(Context... contexts) {
Quotesendpoint.Builder endpointBuilder = new Quotesendpoint.Builder(
AndroidHttp.newCompatibleTransport(),
new JacksonFactory(),
new HttpRequestInitializer() {
public void initialize(HttpRequest httpRequest) { }
});
Quotesendpoint endpoint = CloudEndpointUtils.updateBuilder(
endpointBuilder).build();
try {
quotes = endpoint.listquotes().execute();
for (Quotes quote : quotes.getItems()) {
if (quote.getVotes() > 3) {
quoteList.add(quote);
}
}
Voici le code généré par Google dans le moteur de l'application lorsque j'ai créé le point de terminaison. On dirait qu'il questionnera en quelque sorte mais je ne peux pas le comprendre. Ce sont deux projets différents.
@Api(name = "quotesendpoint", namespace = @ApiNamespace(ownerDomain = "projectquotes.com" ownerName = "projectquotes.com", packagePath = ""))
public class quotesEndpoint {
/**
* This method lists all the entities inserted in datastore.
* It uses HTTP GET method and paging support.
*
* @return A CollectionResponse class containing the list of all entities
* persisted and a cursor to the next page.
*/
@SuppressWarnings({ "unchecked", "unused" })
@ApiMethod(name = "listquotes")
public CollectionResponse<quotes> listquotes(
@Nullable @Named("cursor") String cursorString,
@Nullable @Named("limit") Integer limit) {
EntityManager mgr = null;
Cursor cursor = null;
List<quotes> execute = null;
try {
mgr = getEntityManager();
Query query = mgr.createQuery("select from quotes as quotes");
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<quotes>) 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 (quotes obj : execute)
;
} finally {
mgr.close();
}
return CollectionResponse.<quotes> builder().setItems(execute)
.setNextPageToken(cursorString).build();
hmm alors pourquoi ne fournit google la fonction de curseur de jeu? Je pensais que c'était pour les questions? – NightSkyCode
réponse éditée :) –
Hey Rsen! im en train de faire ça! haha, je viens de supposer google app moteur n'a pas faire paresseux fetch!Je pensais que quand je l'ai couru de cette façon, il téléchargeait tous les objets dans le datastore (base de données)! Savez-vous si c'est le cas ou pas? – NightSkyCode