JDO/JPA Persistence with Google App Engine

I ran across Max Ross' blog today (he's a App Engine Engineer working on persistence) and was surprised to find a wealth of articles, code and tips on persistence using JDO and JPA on Google App Engine.

Creating A Bidrectional Owned One-To-Many - Code and demo of an owned, bidirectional, one-to-many relationship showing how you can can persist child objects simply by associating them with their parent objects

Executing Batch Gets - Use batch gets to "super-efficiently" querying for objects using filters on the primary key property.

Updating A Bidrectional Owned One-To-Many With A New Child - Using "transparent persistent" to modify the persistent state of an object without explicit persistence calls to repersist it.

Keys Only Queries - Speeding up queries using a keys-only query.

Serialized Fields - Store any class that implements Serializable in a single property.

Optimistic Locking With @Version - Using optimistic locking with long-running transactions to prevent users from updating stale data.

Unindexed Properties - Speed up datastore write operations while reducing CPU time.

Case Insensitive Queries - Performing case-insensitive queries.

Queries with != and IN filters - Examination of the new support for != and IN query operators in the new SDK release.