我正在创建一个
Android应用程序,我需要持久化Map< String,MyClass>.
我刚刚开始使用 Realm ORM,因为它支持一对一和一对多的枚举和列表.我还找到了一个字符串列表的解决方法(即我必须创建一个封装字符串的StringWrapper类.
但是,从 documentation开始,我理解像RealmMap这样没有简单的方法,就像列表一样.
所以,我正在寻找坚持地图的最佳方式.
我目前的想法是用一个对象列表替换我的地图KeyValueObject封装一个String(前一个映射键)和一个MyClass.与
是否有任何其他解决方案不需要我出于技术原因重新编写域模型?
我刚刚开始使用 Realm ORM,因为它支持一对一和一对多的枚举和列表.我还找到了一个字符串列表的解决方法(即我必须创建一个封装字符串的StringWrapper类.
但是,从 documentation开始,我理解像RealmMap这样没有简单的方法,就像列表一样.
所以,我正在寻找坚持地图的最佳方式.
我目前的想法是用一个对象列表替换我的地图KeyValueObject封装一个String(前一个映射键)和一个MyClass.与
Map.Entry
类似.
是否有任何其他解决方案不需要我出于技术原因重新编写域模型?
解决方法
正如您所注意到的,Realm尚不支持地图:
https://github.com/realm/realm-java/issues/759
您可以使用模型类:
class MyData extends RealmObject { private RealmList<MyMapEntry> myMap; } class MyMapEntry extends RealmObject { private String key; private MyClass value; }
假设您有一个名为myData的MyData对象,并且您希望获取与myKey关联的值,查询MyClass myClass = myData.getMyMap().where().equalTo(“key”,myKey).firstFirst()可能很有用.