问题标签 [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.
android - ObjectBox 在类型迁移后不保留以前的值
我们必须将实体中的一个字段参数从 迁移long
到BigDecimal
. 迁移很顺利,但是有问题;我们希望将以前的值设置为迁移的字段。但是一旦ObjectBox
被初始化,它会将 migrated 字段默认为当前类型的默认值,在我们的例子中为null
.
假设我们有:
标识(长) | 姓名 |
---|---|
123 | 随机名称 |
迁移后我们得到:
标识(字符串) | 姓名 |
---|---|
无效的 | 随机名称 |
是否有任何可能的迁移方式而不会丢失已迁移字段的值?
附注:我使用转换器来保留BigDecimal
值,因为ObjectBox
不支持BigDecimal
转换器类:
用法:
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 文件。
请问有什么建议吗?
objectbox - ObjectBox Swift 是否允许针对唯一实体注释的冲突策略?
ObjectBox 的 Java api 有一个独特的实体注解,允许您指定冲突策略
Swift api 是否为其独特的注释提供了类似的选项?
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 数据浏览器?