objectbox-java

Android Database - first and fast, lightweight on-device vector database

APACHE-2.0 License

Stars
4.4K

Bot releases are hidden (Show)

objectbox-java -

Published by greenrobot-team almost 4 years ago

  • Minor improvements to Sync tooling.

See the 2.8.0 release notes for the latest changes.

Previous release notes

objectbox-java -

Published by greenrobot-team almost 4 years ago

  • Added Sync API.
  • Fixed "illegal reflective access" warning in the plugin.
  • The data browser notification is now silent by default, for quieter testing. #903
  • Updated and improved API documentation in various places (e.g. on how Query.findLazy() and Query.findLazyCached() work with LazyList #906).
  • Print full name and link to element for @Index and @Id errors. #902
  • Explicitly allow to remove a DbExceptionListener by accepting null values for BoxStore.setDbExceptionListener(listener).

Previous release notes

objectbox-java -

Published by greenrobot-team about 4 years ago

  • Fix exception handling during BoxStoreBuilder.build() to allow retries. For example, after a FileCorruptException you could try to open the database again using the recently added usePreviousCommit() option.
  • Add PagesCorruptException as a special case of FileCorruptException.
  • DbExceptionListener is called more robustly.

Previous release notes

objectbox-java - V2.5.0

Published by greenrobot-team over 4 years ago

  • Important bug fix - please update if you are using N:M relations!
  • Several improvements, e.g. for property queries

See changelogs for details.

objectbox-java - V2.6.0

Published by greenrobot-team over 4 years ago

  • @DefaultValue("") annotation. Annotated properties will return the specified default value (currently only "" is supported) instead of null. This is useful if a not-null property is added to an entity, but there are existing entities in the database that will return null for the new property.
    Note: naming is not final, it may change to e.g. @AbsentValue(""). #157
  • RxJava 3 support library objectbox-rxjava3. Also includes Kotlin extension functions to more easily obtain Rx types, e.g. use query.observable() to get an Observable. #83
  • The annotation processor is incremental by default. #620
  • Fix error handling if ObjectBox can't create a Java entity (the proper exception is now thrown).
  • Support setting an alias after combining conditions using and() or or(). #83
  • Add documentation that string property conditions ignore case by default. Point to using case-sensitive conditions for high-performance look-ups, e.g. when using string UIDs.
  • Repository Artifacts are signed once again.

Changes since 2.6.0-RC (released on 2020/04/28):

  • Performance improvements with query links (aka "joins").
    Note: the order of results has changed unless you explicitly specified properties to order by. Remember: you should not depend on any internal order. If you did, this is a good time to fix it.
  • objectbox-java no longer exposes the greenrobot-essentials and FlatBuffers dependencies to consuming projects.
  • Minor code improvements.

See the full changelog for more details.

objectbox-java -

Published by greenrobot-team over 4 years ago

objectbox-java -

Published by greenrobot-team over 4 years ago

Note: this is a preview release. Future releases may add, change or remove APIs.

  • Add Kotlin infix extension functions for creating conditions using the new Query API. See the documentation for examples.
  • The old Query API now also supports setting an alias after combining conditions using and() or or(). #834
  • Add documentation that string property conditions ignore case by default. Point to using case-sensitive conditions for high-performance look-ups, e.g. when using string UIDs.
  • Java's String[] and Kotlin's Array<String> are now a supported database type. A converter is no longer necessary to store these types. Using the arrayProperty.equal("item") condition, it is possible to query for entities where "item" is equal to one of the array items.
  • Support @Unsigned to indicate that values of an integer property (e.g. Integer and Long in Java) should be treated as unsigned when doing queries or creating indexes. See the Javadoc of the annotation for more details.
  • Support marking 64-bit integer properties (e.g. Long in Java) with @Type(DateNano) to indicate the database should treat these values as time with nanosecond precision. Note: to store time in millisecond precision continue to use java.util.Date (without annotation). This is not ready, yet.
  • Add new library to support RxJava 3, objectbox-rxjava3. In addition, objectbox-kotlin adds extension functions to more easily obtain Rx types, e.g. use query.observable() to get an Observable. #839

To use this release change the version of objectbox-gradle-plugin to 3.0.0-alpha2. The plugin now properly adds the preview version of objectbox-java to your dependencies.

buildscript {
    dependencies {
        classpath "io.objectbox:objectbox-gradle-plugin:3.0.0-alpha2"
    }
}

dependencies {
    // Artifacts with native code remain at 2.5.1.
    implementation "io.objectbox:objectbox-android:2.5.1"
}

The objectbox-android, objectbox-linux, objectbox-macos and objectbox-windows artifacts shipping native code remain at version 2.5.1 as there have been no changes. If you explicitly include them, make sure to specify their version as 2.5.1.

objectbox-java -

Published by greenrobot-team over 4 years ago

Note: this is a preview release. Future releases may add, change or remove APIs.

  • A new Query API provides support for nested AND and OR conditions. See the documentation for examples and notable changes. #201
  • Subscriptions now publish results in serial instead of in parallel (using a single thread vs. multiple threads per publisher). Publishing in parallel could previously lead to outdated results getting delivered after the latest results. As a side-effect transformers now run in serial instead of in parallel as well (on the same single thread per publisher). #793
  • Turn on incremental annotation processing by default. #620

To use this release change the version of objectbox-gradle-plugin to 3.0.0-alpha1 and add a dependency on objectbox-java version 3.0.0-alpha1.

buildscript {
    dependencies {
        classpath "io.objectbox:objectbox-gradle-plugin:3.0.0-alpha1"
    }
}

dependencies {
    implementation "io.objectbox:objectbox-java:3.0.0-alpha1"
    // Artifacts with native code remain at 2.5.1.
    implementation "io.objectbox:objectbox-android:2.5.1"
}

The objectbox-android, objectbox-linux, objectbox-macos and objectbox-windows artifacts shipping native code remain at version 2.5.1 as there have been no changes. However, if your project explicitly depends on them they will pull in version 2.5.1 of objectbox-java. Make sure to add an explicit dependency on of objectbox-java version 3.0.0-alpha1 as mentioned above.

objectbox-java -

Published by greenrobot-team over 4 years ago

  • Support Android Gradle Plugin 3.6.0. #817

  • Support for incremental annotation processing. #620
    It is off by default. To turn it on set objectbox.incremental to true in build.gradle:

    android {
        defaultConfig {
            javaCompileOptions {
                annotationProcessorOptions {
                    arguments = [ "objectbox.incremental" : "true" ]
                }
            }
        }
    }
    

https://docs.objectbox.io/#v-2-5-1-2020-02-10

objectbox-java -

Published by greenrobot-team almost 5 years ago

  • More helpful error messages if annotations can not be combined.
  • Improved documentation on various annotations.

https://docs.objectbox.io/#v-2-4-1-2019-10-29

objectbox-java -

Published by greenrobot-team about 5 years ago

This release has mainly quality of life improvements and resolves reported issues.

Android: after updating to this version your app might require changes before it can build successfully. See the upgrade notes for details: https://docs.objectbox.io/#v-2-4-0-2019-10-15

Release notes: https://docs.objectbox.io/