【发布时间】:2016-02-10 09:50:52
【问题描述】:
我正在创建一个 Android 应用程序,我需要保留 Map<String,MyClass>。
我刚刚开始使用Realm ORM,因为它支持一对一和一对多、枚举和列表。我还找到了字符串列表的解决方法(即我必须创建一个封装字符串的 StringWrapper 类。
但是,从documentation 我了解到没有像RealmMap 这样的简单方法,因为它发生在列表中。
所以,我正在寻找持久化地图的最佳方式。
我目前的想法是用对象列表替换我的地图KeyValueObject,其中封装了String(前地图键)和MyClass。类似于Map.Entry。
是否有任何其他解决方案不需要我出于技术原因重新设计域模型?
【问题讨论】:
-
您是否愿意考虑另一种持久性产品?假设 Map 对象是包含模型类的属性,将 Map 对象存储在数据库中的 blob 列中是否满足您的应用程序需求?
-
两个问题都同意
-
请查看 JDXA ORM (softwaretree.com/v1/products/jdxa/jdxa.html)。 JDXA 支持一对一、一对多和多对多关系。 JDXA 还支持将嵌入对象(例如 HashMap)存储在 BLOB 列中的概念。虽然您不能根据 HashMap 值进行任何查询,但 JDXA 会在查询期间为您重建嵌入的 HashMap 对象。