Second, after the user saves his timecard entries, you need to refresh the FlexTable to
include the ones that he just entered. In the onSuccess Async method of the
saveEntries method, add the following call.
// re-fetch the entries for the current user
Voilà! Your timecard application is now complete.
In this large and information-packed chapter you took a deep dive into the datastore
and then used what you learned to complete your application. Since databases are an
integral part of almost every application, it's worth recapping what you've learned.
Bigtable is a highly distributed and scalable service for storing and managing
structured data. Bigtable is not a typical relational database that stores records as
rows in a table. Instead, it stores data as entities with properties organized by
application-defined kinds that can be manipulated using either low-level or high-
Using JDO you can perform common CRUD operations as well as query for
entities using JDOQL, a SQL-like query language. JDOQL supports filtering, sorting,
and indexing of queries. At a high level, Bigtable supports transactions like most
For the remainder of the chapter the focus was on finishing up your application.
First you created an RPC data service that allowed your GWT front end to
communicate with the server. You created quite a few classes and interfaces to
implement this service as well as the objects that were passed between client and
server layers. When you were done, you had a complete and working timecard
In the next chapter we'll focus on some of the functional services available to App