A Persistence Framework for Scala and NoSQL
EType
and all its
descendents. The older pattern of making embeddable companion
objects into ETypes
(e.g., case class Email extends EType[Email]
) still works, but now you can just mention the EType
directly, when building your subdomain. (E.g., Subdomain(???, ???, ETypePool(EType[Email]))
).DerivedType.polyType
and
DerivedPType.polyPType
. DerivedType
and DerivedPType
are now
abstract classes instead of traits, so users may need to reorder
their inheritance with
clauses. (It's highly unlikely a user would
have been be using these traits to extend a class.)longevity.optimisticLocking = true
in your typesafe config.LongevityContext.testDataGenerator
.Persistents
and Embeddables
that
are case objects.LongevityConfig
for well-typed
configuration. Users can use LongevityConfig
instead of a Typesafe
Config to configure their context. Just use the LongevityContext
constructor instead of the LongevityContext.apply
factor method.PType.indexes
optional. You used to have to
declare an empty indexes
singleton object within your PType
if
you had no indexes. Now, you can just leave it out. This should have
no effect on existing code, but you can go back and remove empty
indexes
objects if you want.Repo.streamByQuery
, you must now
declare a dependency on Akka Streams yourself: libraryDependencies += "com.typesafe.akka" %% "akka-stream" % "2.4.9"
.the info in the pom was broken due to an oversight. the longevity pom was pointing to emblem project. this release fixes that. there is not code changes whatsoever, just a fixed pom
KeyVal
and Key
have been completely reworked for
improved understandability and ease of use. please see the manual
for details.Assoc
s are gone. please use KeyVal
s and Key
s
instead.PType
's properties and keys are now only realized
when the Subdomain
is constructed. this should have no affect on
the user, except that some exceptions for malformed properties will
be delayed until Subdomain
initialization. also, properties
created outside of PType.propSet
will no longer work.ValueObject
instead.Embeddable
and EType
for Entity
,
ValueObject
, EntityType
, and ValueType
.Query.All()
.Deleted.get
.LiftFPState.mapRoot
,
LiftFPState.flatMapRoot
, LiftFOPState.mapRoot
, and
LiftFOPState.flatMapRoot
by replacing Root
with P
.CoreDomain
, SupportingSubdomain
and
GenericSubdomain
are now actual traits that extend Subdomain
(instead of just type aliases). this allows users to directly
subclass these three types if they wish.Repo.streamByQuery(query: Query[P]): Source[PState[P], NotUsed]
.RootType.keys
to RootType.keySet
.RootType.indexes
to RootType.indexSet
.Prop
. affected methods are
RootEntity.{ key, index }
, Query.{ eqs, neq, lt, lte, gt, gte }
,
and the corresponging methods in the QueryDsl
.QuerySpec
.PRef
for Assoc
and
KeyVal
. merge the two versions of the Repo
methods retrieve
and retrieveOne
so that they take a PRef
. this shouldn't affect
any client code.