greenDAO Changelog

V3.3.0 (2020-04-29)

  • Support Android Gradle Plugin 3.3+ APIs. #942
  • Support Gradle 6.0. #1002
  • Support JDK 11. #1014
  • Updated ProGuard, R8 rules when using SQLCipher.
  • Prevent verbose ART “Rejecting re-init” logs. #428
  • Support fully specified @Transient annotation name. #657
  • Expose Database.isOpen(). #700
  • Allow custom collation for SQLCipher databases. #727
  • Support setting DatabaseErrorHandler. #839
  • Generate DaoMaster in same package on Mac and Windows. #880
  • Escape table name for joins. #888

V3.2.2 Fixes (2017-04-05)

  • Improved compatibility with Android Studio and the Android Gradle Plugin (once and for all; we are using a repackaged JDT now to avoid conflicts)
  • setParameter() for all query types
  • More bug fixes

V3.2.1 Plugin fixes (2016-11-16)

Note: 3.2.0 is still the latest version for artifacts greendao and greendao-generator.

  • Improved compatibility with Android Studio and Jack compiler
  • Bugfixes

V3.2.0 Android Studio 2.2 support (2016-09-26)

  • Fixed some issues with Android Studio and Android Gradle Plugin versions 2.2 (JDT class conflicts)
  • ProtocolBuffers support: Use the new protobuf attribute in @Entity to define a secondary Protobuf entity
  • Several minor improvements

V3.1.1 @Entity Fixes (2016-08-24)

We made several fixes and improvements related to the new @Entity annotation, and advise to update. Note, if you are still using greendao-generator, 3.1.0 is the most recent version.

  • Getter&setter generation can be disabled using @Entity(generateGettersSetters = false)
  • Inner classes are now detected for custom types and converters
  • String constants can now be used for annotation values
  • Several minor improvements

V3.1.0 Fixes and Rx (2016-08-04)

Note: If you are already using the new @Entity annotation, you are advised to update because we made some important fixes.

  • New save() and saveInTx() in DAO: better performance than insertOrReplace() with slightly different semantics
  • New experimental support for RxJava (feedback welcome, we hope to finalize the Rx APIs in 3.2)
  • Various fixes for @Entity processing introduced in 3.0 (click here for details)
  • Several minor improvements

V3.0.0 Annotations and Gradle Plugin (2016-07-06)

V3 is a major release with changes that require adjustments on your side. See the documentation on how to upgrade.

  • New Annotations for entities (coming with new a Gradle plugin as an alternative to the generator project)
  • Integrated DB abstraction and SQLCipher support: greenDAO supports custom and encrypted databases in a single edition (no more separate branch/artifact)
  • Breaking change: Base package is now org.greenrobot.greendao
  • Breaking change: replaced Android’s LOCALIZED with standard NOCASE collation in QueryBuilder for string ordering as a common ground for standard SQLite and SQLCipher (you can still enforce LOCALIZED if you want)
  • Various smaller improvements

greendao-encryption V2.2.2 (2016-06-24)

  • For compatibility with SQCipher 3.5.x, we had to remove the LOCALIZED collation in QueryBuilder when defining the ORDER using String properties

V2.2.1 Bug fix release (2016-05-24)

  • Fix: In certain multi-threaded scenarios, TableStatements could deadlock when the underlying database version is locking-savvy, like SQLCipher.

V2.2.0 Encryption support (2016-04-18)

  • Support for encryption using SQLCipher (‘greendao-encryption’ artifact)
  • Attention: artifact group changed to ‘org.greenrobot’ (Java package starting with ‘de’ remains, no breaking changes)
  • Query.setParameter returns the query to allow a more fluent API
  • New DAO method detachAll to detach all entities of a specific type
  • Using Gradle 2.12’s compileOnly dependencies fixed errors with Android Studio (only relevant if you want to work on the greenDAO source)

V2.1.0 Minor feature and bugfix release (2015-11-12)

  • Official Robolectric support: workaround for a broken system call in Robolectric triggered by Query.forCurrentThread
  • QueryBuilder now allows to create DISTINCT queries to avoid duplicate entities returned
  • CursorQuery (beta, API might change)
  • Deadlock prevention when loading a list of entities while doing concurrent updates
  • Fixed async queries
  • Better Android Studio support
  • Generator: Possibility to supply custom JavaDoc for entities and their properties
  • Generator: Fixed codeBeforeGetter, added codeBeforeGetterAndSetter

V2.0.0 Major feature release (2015-07-30)

  • Join for queries: relate a query to other entities (or joins)
  • To-Many relations using a join entity (useful for M:N relationships)
  • Custom types for properties: by implementing PropertyConverter, entities can have properties of any type, e.g. enums, BigInteger, alternative time/date classes, JSON objects, serialized objects, …
  • Add custom code to fields, getters, and setters of entity properties to add custom annotations or JavaDoc
  • Add additional imports to entities without keep sections
  • Fixes for table names matching a SQL keyword (e.g. “order”, “transaction”)
    Several bug fixes
  • Added Flag for AsyncOperation to track the caller’s stacktrace (useful for debugging)

Generator V1.3.1 (2014-05-24): Bugfix

  • Fix schema version >= 1000

V1.3.7 (2013-11-27): Bugfix

  • Fixed building defect DeleteQuery for tables ending with character ‘T’ (bug introduced in 1.3.3)
  • Prepared Fast Cursor for API level 19

V1.3.6 (2013-11-15): Bugfix

  • Fixed leaked statement in DeleteQuery

V1.3.5 (2013-11-14): Bugfix

  • Because of an issue with ApplicationTestCase, the base test class DbTest does not extend this class anymore. Note: This refactoring may require you to adjust some test classes if your tests depend on DbTest or its subclasses.

V1.3.4 (2013-10-28): Bugfix

  • Redeployment of 1.3.3 artifacts without some old class leftovers

V1.3.3 (2013-10-18): Bugfix

  • Fixed a memory leak affecting Query class that was introduced in 1.3.0 (#93)
  • Fixed a rare race condition that can lead to “Entity is detached from DAO context” DaoException (#101)

V1.3.2 (2013-08-28): Bugfix

  • Fixed building CountQueries with combined AND/OR conditions
  • Some secret inoffical work in progress

V1.3.1 (2013-03-02): Fixed Gradle dependencies

  • Don’t use Gradle’s “compile” dependency scope

V1.3.0 (2013-02-24): Multithreading robustness and refactoring (breaking changes!)

  • Reworked internal locking of insert/update/delete methods
  • Fixed potential deadlocks when transactions are executed concurrently to one of the various insert/update/delete calls
  • Reworked queries to be used without locking, query instances are now bound to their owner thread (breaking change!)
  • Relations use the new lock-free query API
  • Query classes were moved into the new query subpackage (breaking change!)
  • Introduced Gradle build scripts for DaoCore and DaoGenerator projects
  • Maven artifacts are pushed to Maven Central starting with this version
    Added two packages for classes used internally (identityscope and internal)
  • Added new deleteByKeyInTx DAO method to efficiently delete multiple entities using their keys
  • Added some checks to throw exceptions with nicer messages telling what’s wrong
  • Added Travis CI

V1.2.0 (2012-06-08): Feature release

  • Limited support of String PKs (no relations using String FKs yet)
  • Fixed index creation (please update your schema)
  • Added CountQuery for creating SELECT COUNT (*) queries with QueryBuilder
  • Added getDatabase in DaoMaster, DaoSession, and Dao
  • Added insertOrReplaceInTx in Dao
  • Added deleteInTx in Dao
  • Added autoincrement() creating AUTOINCREMENT PKs
  • Made DAOs and DaoSessions in active entities transient (allows serialization of entities)
  • Minor fixes

V1.1.2 (2012-03-26): ADT 17 support for demo project

  • Demo projects works with ADT 17 (moved greendao.jar into libs)
  • CREATE/DROP TABLE may be skipped for entity types: This allows having multiple entity types operate on the same table
  • Minor improvements

V1.1.1 (2012-02-14): Mini bugfixfeature release

  • Added NOT IN condition for QueryBuilder
  • Fix for Roboelectric (Issue #22)
  • Minor fix (Issue #5)

V1.1.0 (2012-02-13): Feature release

  • DeleteQuery for bulk deletes
  • Entities may implement Java interfaces
  • Entities may extend a Java class
  • Added LIMIT and OFFSET support for QueryBuilder and Query
  • Convenience methods to add named relationships
  • SQL scripts are executed in a transaction by default
  • Fixed queries with special column names (SQL keywords)
  • Changed default names for to-many relations to end with “List”
  • ORDER BY uses LOCALIZED collation for strings by default

V1.0.1 (2011-10-30): Bugfix release

  • Fixed generation of to-many relations
  • Fixed generated import statements when entities/DAO are not in the same package

V1.0.0 (2011-10-24): First open source release

  • To-many relations (lazily loaded on the entities)
  • To-many relations with custom join properties
  • Active entities can be updated, refreshed, and deleted directly
  • Significant performance improvements (faster identity scope, faster database result parser)
  • “Keep sections” for custom code in entities were added that won’t be overwritten during code generation
  • Other minor improvements

2nd and 3rd preview (2011-08-12 and 2011-08-19)

Announcements for the second and third preview

First public release (2011-08-04)


Spread the love