DBFlow 4.0 Migration guide
In 4.0, DBFlow has greatly improved its internals and flexibility in this release. We have removed the
Model restriction, rewritten the annotation processor completely in Kotlin, and more awesome improvements.
Major Changes In this release
TypeConverters, be table-based objects, and all kinds of objects. No real restrictions.
ForeignKeyhave been revamped to allow
stubbedRelationship. This replaces
Modelinterface now includes
load()to enabled reloading very easily when fields change.
ModelContainerimplementation + support has been removed. A few reasons pushed the removal, including implementation. Since removing support, the annotation processor is cleaner, easier to maintain, and more streamlined. Also the support for it was not up to par, and by removing it, we can focus on improving the quality of the other features.
The annotation processor has been rewritten in Kotlin! By doing so, we reduced the code by ~13%.
Modelrestriction on tables. If you leave out extending
BaseModel, you must interact with the
We generate much less less code than 3.0. Combined the
_Adapterinto the singular
_Tableclass, which contains both
Property+ all of the regular
ModelAdaptermethods. To ease the transition to 4.0, it is named
ModelAdapter. So most use cases / interactions will not break.
Operator, this includes
Operatorare now typed and safer to use.
Operatornow also have
Property class changes:
- All primitive
Propertyclasses have been removed. We already boxed the values internally anyways so removing them cut down on method count and maintenance.
BasePropertyno longer needs to exist, so all of it's methods now exist in
modmethod is now
rem(remainder) method to match Kotlin 1.1's changes.
divto match Kotlin operators.
timesto match Kotlin operators.
- All primitive
Rewrote all Unit tests to be more concise, better tested, and cleaner.
A lot of bug fixes
- Added more Kotlin extensions.
- Most importantly you don't need to use
Modelat all anymore if you so choose. There are
Model-like extension methods that supply the
- Updated to version 1.1.1
RXJava1 and RXJava2 support! Can now write queries that return