Search in sources :

Example 41 with Query

use of com.google.appengine.api.datastore.Query in project getting-started-java by GoogleCloudPlatform.

the class DatastoreDao method listBooks.

// [END entitiesToBooks]
// [START listbooks]
@Override
public Result<Book> listBooks(String startCursorString) {
    // Only show 10 at a time
    FetchOptions fetchOptions = FetchOptions.Builder.withLimit(10);
    if (startCursorString != null && !startCursorString.equals("")) {
        // Where we left off
        fetchOptions.startCursor(Cursor.fromWebSafeString(startCursorString));
    }
    Query query = // We only care about Books
    new Query(BOOK_KIND).addSort(Book.TITLE, // Use default Index "title"
    SortDirection.ASCENDING);
    PreparedQuery preparedQuery = datastore.prepare(query);
    QueryResultIterator<Entity> results = preparedQuery.asQueryResultIterator(fetchOptions);
    // Retrieve and convert Entities
    List<Book> resultBooks = entitiesToBooks(results);
    // Where to start next time
    Cursor cursor = results.getCursor();
    if (cursor != null && resultBooks.size() == 10) {
        // Are we paging? Save Cursor
        // Cursors are WebSafe
        String cursorString = cursor.toWebSafeString();
        return new Result<>(resultBooks, cursorString);
    } else {
        return new Result<>(resultBooks);
    }
}
Also used : FetchOptions(com.google.appengine.api.datastore.FetchOptions) Entity(com.google.appengine.api.datastore.Entity) PreparedQuery(com.google.appengine.api.datastore.PreparedQuery) Query(com.google.appengine.api.datastore.Query) Book(com.example.getstarted.objects.Book) PreparedQuery(com.google.appengine.api.datastore.PreparedQuery) Cursor(com.google.appengine.api.datastore.Cursor) Result(com.example.getstarted.objects.Result)

Example 42 with Query

use of com.google.appengine.api.datastore.Query in project getting-started-java by GoogleCloudPlatform.

the class DatastoreSessionFilter method deleteSessionWithValue.

// [END deleteSessionVariables]
protected void deleteSessionWithValue(String varName, String varValue) {
    Transaction transaction = datastore.beginTransaction();
    try {
        Query query = new Query(SESSION_KIND).setFilter(new FilterPredicate(varName, FilterOperator.EQUAL, varValue));
        Iterator<Entity> results = datastore.prepare(transaction, query).asIterator();
        while (results.hasNext()) {
            Entity stateEntity = results.next();
            datastore.delete(transaction, stateEntity.getKey());
        }
        transaction.commit();
    } finally {
        if (transaction.isActive()) {
            transaction.rollback();
        }
    }
}
Also used : Entity(com.google.appengine.api.datastore.Entity) Transaction(com.google.appengine.api.datastore.Transaction) Query(com.google.appengine.api.datastore.Query) FilterPredicate(com.google.appengine.api.datastore.Query.FilterPredicate)

Example 43 with Query

use of com.google.appengine.api.datastore.Query in project java-docs-samples by GoogleCloudPlatform.

the class GreetingTest method createSaveObject.

@Test
public void createSaveObject() throws Exception {
    Greeting g = new Greeting("default", TEST_CONTENT);
    ObjectifyService.ofy().save().entity(g).now();
    Query query = new Query("Greeting").setAncestor(new KeyFactory.Builder("Guestbook", "default").getKey());
    PreparedQuery pq = ds.prepare(query);
    // Should only be one at this point.
    Entity greeting = pq.asSingleEntity();
    assertEquals(greeting.getProperty("content"), TEST_CONTENT);
}
Also used : Entity(com.google.appengine.api.datastore.Entity) PreparedQuery(com.google.appengine.api.datastore.PreparedQuery) Query(com.google.appengine.api.datastore.Query) PreparedQuery(com.google.appengine.api.datastore.PreparedQuery) Test(org.junit.Test)

Example 44 with Query

use of com.google.appengine.api.datastore.Query in project java-docs-samples by GoogleCloudPlatform.

the class MetadataPropertiesTest method propertiesOfKind.

// [START property_ancestor_query_example]
List<String> propertiesOfKind(DatastoreService ds, String kind) {
    // Start with unrestricted keys-only property query
    Query q = new Query(Entities.PROPERTY_METADATA_KIND).setKeysOnly();
    // Limit to specified kind
    q.setAncestor(Entities.createKindKey(kind));
    // Initialize result list
    ArrayList<String> results = new ArrayList<String>();
    // Build list of query results
    for (Entity e : ds.prepare(q).asIterable()) {
        results.add(e.getKey().getName());
    }
    // Return result list
    return results;
}
Also used : Entity(com.google.appengine.api.datastore.Entity) Query(com.google.appengine.api.datastore.Query) ArrayList(java.util.ArrayList)

Example 45 with Query

use of com.google.appengine.api.datastore.Query in project java-docs-samples by GoogleCloudPlatform.

the class MetadataPropertiesTest method representationsOfProperty.

// [START property_representation_query_example]
Collection<String> representationsOfProperty(DatastoreService ds, String kind, String property) {
    // Start with unrestricted non-keys-only property query
    Query q = new Query(Entities.PROPERTY_METADATA_KIND);
    // Limit to specified kind and property
    q.setFilter(new FilterPredicate("__key__", Query.FilterOperator.EQUAL, Entities.createPropertyKey(kind, property)));
    // Get query result
    Entity propInfo = ds.prepare(q).asSingleEntity();
    // Return collection of property representations
    return (Collection<String>) propInfo.getProperty("property_representation");
}
Also used : Entity(com.google.appengine.api.datastore.Entity) Query(com.google.appengine.api.datastore.Query) Collection(java.util.Collection) FilterPredicate(com.google.appengine.api.datastore.Query.FilterPredicate)

Aggregations

Query (com.google.appengine.api.datastore.Query)74 Entity (com.google.appengine.api.datastore.Entity)59 PreparedQuery (com.google.appengine.api.datastore.PreparedQuery)47 Test (org.junit.Test)38 FilterPredicate (com.google.appengine.api.datastore.Query.FilterPredicate)31 Filter (com.google.appengine.api.datastore.Query.Filter)20 Key (com.google.appengine.api.datastore.Key)16 CompositeFilter (com.google.appengine.api.datastore.Query.CompositeFilter)16 DatastoreService (com.google.appengine.api.datastore.DatastoreService)13 ArrayList (java.util.ArrayList)13 PersistentDataStoreException (codeu.model.store.persistence.PersistentDataStoreException)6 FetchOptions (com.google.appengine.api.datastore.FetchOptions)6 PrintWriter (java.io.PrintWriter)6 Instant (java.time.Instant)6 UUID (java.util.UUID)6 Conversation (codeu.model.data.Conversation)2 Message (codeu.model.data.Message)2 User (codeu.model.data.User)2 Book (com.example.getstarted.objects.Book)2 Result (com.example.getstarted.objects.Result)2