问题标签 [objectbox-java]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
95 浏览

android - ObjectBox 在类型迁移后不保留以前的值

我们必须将实体中的一个字段参数从 迁移longBigDecimal. 迁移很顺利,但是有问题;我们希望将以前的值设置为迁移的字段。但是一旦ObjectBox被初始化,它会将 migrated 字段默认为当前类型的默认值,在我们的例子中为null.

假设我们有:

标识(长) 姓名
123 随机名称

迁移后我们得到:

标识(字符串) 姓名
无效的 随机名称

是否有任何可能的迁移方式而不会丢失已迁移字段的值?

附注:我使用转换器来保留BigDecimal值,因为ObjectBox不支持BigDecimal

转换器类:

用法:

0 投票
1 回答
169 浏览

objectbox - ObjectBox:在 Dart 中打开用 Java 创建的 DB 文件时出现问题

我在 Android 上有一个正在运行的 Java 应用程序,现在我尝试将其迁移到 Flutter/Dart。所以我在 Dart 中重新创建了模型,并尽最大努力将类型与 Java 匹配。我注意到不能完全匹配的一件事是 Java 中的模型继承在 Dart 中不受支持。为此,我将最初在父类中的所有属性复制到子类中。我的测试应用程序首先创建了一个空数据库,并在 Linux 和 Android 上运行,具有基本的 get 和 put。

希望使用与 Java 应用程序相同的数据库,然后我复制了一个已创建并仍在 Android 上的 Java 应用程序使用的数据库文件,并将其放置在 Dart 应用程序中。我还复制了模型 json 文件,以便希望 UID 可以匹配。在Linux上运行,它崩溃并报告以下错误,这对我来说基本上意义不大:

然后我尝试在 Android 上启动它,我收到异常消息,比如

ObjectBoxException (ObjectBoxException: failed to create store: 10501 Cannot change the following flags for Property rightToLeft (6, Bool) (Language) from 4 to 0 (problem flags: 4). 请考虑创建一个新属性。请检查数据文档模型迁移和 UID。)

我检查了Java应用程序的json文件,是的,有'flags'字段,如:

但是这个属性变成了 Dart

在构建数据库例程时,“标志”字段因某种原因被删除。然后我检查了其他属性,Java 文件有许多具有标志字段的属性。许多这些标志字段在 Dart 中被删除,只保留了一些。我找不到太多关于这些标志是什么的信息,或者为什么它们在 Java 和 Dart 版本之间不同,或者如何在 Dart 中维护它们以便可以兼容地处理 DB 文件。

请问有什么建议吗?

0 投票
1 回答
25 浏览

objectbox - ObjectBox Swift 是否允许针对唯一实体注释的冲突策略?

ObjectBox 的 Java api 有一个独特的实体注解,允许您指定冲突策略

Swift api 是否为其独特的注释提供了类似的选项?

0 投票
0 回答
33 浏览

android - 如何在多模块 Android 项目中使用 ObjectBox 数据浏览器?

我的 android kotlin 项目中有不同的模块。我按照在我的应用程序中集成 ObjectBox 数据浏览器的设置。https://docs.objectbox.io/data-browser#browse-data-on-your-device 我的应用程序有多个模块句柄,具有自己的 boxStore(属于其域)。我在一个模块的 build.gradle 中做了更改,而不是在应用程序的 build.gradle

可能会出现问题,因为它记录在设置中(否则,构建将失败并出现重复文件错误(如重复文件......),请参阅下面的异常。

任务:app:mergeDevDebugJavaResource

FAILURE:构建完成,有 2 次失败。

1:任务因异常而失败。

  • 出了什么问题:任务“:app:checkDevDebugDuplicateClasses”执行失败。

执行 com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable 模块 objectbox-android-3.1.0-runtime (io.objectbox:objectbox-android:3.1. 0) 和 objectbox-android-objectbrowser-3.1.0-runtime (io.objectbox:objectbox-android-objectbrowser:3.1.0)

  • 尝试:使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。运行 --scan 以获得完整的见解。==================================================== ==============================

2:任务因异常而失败。

  • 出了什么问题:任务“:app:mergeDevDebugNativeLibs”执行失败。

执行 com.android.build.gradle.internal.tasks.MergeNativeLibsTask$MergeNativeLibsTaskWorkAction 2 文件时发生故障,从输入中找到路径“lib/arm64-v8a/libobjectbox-jni.so”:- C:\Users\user.gradle \caches\transforms-3\61d4e2d341867bfe7da882a16d958f28\transformed\objectbox-android-3.1.0\jni\arm64-v8a\libobjectbox-jni.so - C:\Users\user.gradle\caches\transforms-3\c01a6cc4e4401962baa7adfbb173c10c\transformed objectbox-android-objectbrowser-3.1.0\jni\arm64-v8a\libobjectbox-jni.so 如果您使用 jniLibs 和 CMake IMPORTED 目标,请参阅 https://developer.android.com/r/tools/jniLibs-vs-导入目标

是否可以在多模块 Android 项目中使用 ObjectBox 数据浏览器?