【问题标题】:Storing primitive values in ObjectBox在 ObjectBox 中存储原始值
【发布时间】:2019-08-01 16:37:38
【问题描述】:

我正在从具有两个端点的后端获取订单,一个用于获取有限数量的订单,一个用于仅获取可用订单总数。我可以使用 CustomerOrder 实体类存储订单,但如何存储原始计数值?

由于 ObjectBox 不允许原始类型的盒子并且需要使用实体类,我不得不在实体类中包装一个(!)整数。也许有更简单的方法可以做到这一点?

什么不起作用但我基本上想做的事情:

Box<Integer> countBox = boxStore.boxFor(Integer.class);

我当前的实体包装类(仍然只使用表中的 1 行):

@Entity
public class CustomerOrderCount {

    @Id
    public Integer count;
}

我只是想遵循最佳实践并简化事情。也许有一种比使用 ObjectBox 更简单的方法,但我在这里没有看到它仍然是合法的。

【问题讨论】:

  • ObjectBox 用于将实体类映射到框。其他数据库具有类似的数据结构(例如表格或文档)。如果您只想存储一个键 + 值,对于 Android 可能会查看 SharedPreferences 或对于 Java 在 Properties 作为更好的选择。
  • 我同意,但是 SharedPreferences 是要走的路吗?将单个值存储在表中是不好的做法吗?我读到你应该小心使用 SharedPrefs。
  • 这不是坏习惯。我只是根据要求提出了一种更简单的方法:)
  • @Uwe-ObjectBox 谢谢!如果您愿意,您可以将此作为答案发布,我会接受。 :)

标签: java android objectbox


【解决方案1】:

这个可以去SharedPreferences

或者,如果您有太多原始值要存储,您可以选择 LevelDB

来自文档:

LevelDB 是一个由 Google 编写的快速键值存储库,提供从字符串键到字符串值的有序映射。

LevelDB 的 android 绑定可用here

您也可以使用Hawk。这是另一个简单的 Android 键值存储。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-11
    • 2013-06-03
    • 2016-05-22
    • 2018-08-16
    • 1970-01-01
    相关资源
    最近更新 更多