MorphiaRelease Notes


  • New: Datastore.deleteAll() convenience method.
  • Chg: Removed internal references to DatastoreImpl so Datastore may be decoratored. (See upcoming Dirty Cash!)


  • New: Support for optimistic locking via _version properties.
  • New: Mixed inheritance support via _type properties.
  • Chg: Queries mixin is now non-const.


  • New: Support for Text Searching!
  • New: Query.toStr() returns something useful.
  • Bug: Passing null to QueryCriterion.eq() or QueryCriterion.notEq() resulted in an NPE.


  • Chg: Query.field() & QueryExecutor.orderBy() may now take an actual entity field instance.
  • Chg: Lists returned from Datastore.findAll() are now of the datatype, not Obj.
  • Chg: Exposed Converters.get().
  • Chg: Added hook to ObjConverter that collects all property fields.
  • Bug: If using a non-BSON type for ID fields, an Err was thrown after an update if the document hadn't changed.


  • New: Queries mixin to ease Query construction.
  • Chg: Converter.toMongo() now takes a Type param as the fantomObj arg may now be nullable. This allows null Fantom objects to be represented by non-null Mongo objects. (Breaking change.)
  • Chg: Renamed @Property.type -> @Property.implType. (Breaking change.)
  • Chg: Select methods on Datastore may take a null ID (handy for inlining reads) - as long as checked is false!
  • Chg: Updated to use IoC 3.0.


  • Bug: QueryExecutor.orderByIndex() always threw an Err.
  • Bug: QueryExecutor.limit() may take null.


  • Chg: Map keys are automatically encoded / decoded as unicode escape sequences as MongoDB does not allow characters $ and . in keys.


  • New: Added Datastore.isEmpty().
  • Chg: MapConverter.makeMap() now always creates an ordered map.
  • Bug: Only BSON types could be used for the _id field.


  • New: SimpleConverter utility class for converting simple serializable types to and from Str.
  • New: Converters for Depend, Locale, MimeType, Time, TimeZone, Unit, Uuid, Version.
  • Chg: Documented and made public the Converters service.
  • Chg: Datastore.insert() now returns the given entity.


  • Bug: Binary objects with a generic subtype could not be read from the database as BSON converted them to Buf objects.


  • New: Introduced the Query Builder API.
  • New: IntSequences service provides an alternative to unique ObjectIDs.
  • New: Mongo Collections maybe injected in the same manner as Datastore objects, using the @Inject.type attribute.





  • Chg: @Entity facet is now inherited.
  • Bug: Datastore.findOne() and Datastore.get() could throw a NullErr if checked was false.


  • New: Preview Release