anchor.diff:  }
   ----
   
  -Embedded objects can be stored in the values of embedded Maps.
  -Collections of embedded objects can also be stored as the values of embedded Maps.
  +Because Maps are stored as entities, they can further hold embedded entities:
  +
  +- Singular embedded objects in the value can be stored in the values of embedded Maps.
  +- Collections of embedded objects in the value can also be stored as the values of embedded Maps.
  +- Maps in the value are further stored as embedded entities with the same rules applied recursively for their values.
   
   
   ==== Ancestor-Descendant Relationships
  
positive.code: }
  ----
  
  Maps will be stored as embedded entities where the key values become the field names in the embedded entity.
  The value types in these maps can be any regularly supported property type, and the key values will be converted to String using the configured converters.
  
  
negative.code: If a method annotated with `@Transactional` calls another method also annotated, then both methods will work within the same transaction.
  `performTransaction` cannot be used in `@Transactional` annotated methods because Cloud Datastore does not support transactions within transactions.
  
  ==== Read-Write Support for Maps
  
  You can work with Maps of type `Map<String, ?>` instead of with entity objects by directly reading and writing them to and from Cloud Datastore.
  
  NOTE: This is a different situation than using entity objects that contain Map properties.
  
  The map keys are used as field names for a Datastore entity and map values are converted to Datastore supported types.
  Only simple types are supported (i.e. collections are not supported).
  Converters for custom value types can be added (see <<Custom types>> section).
  