Realm ORM: how to deal with Maps?

后端 未结 2 1802
-上瘾入骨i
-上瘾入骨i 2021-01-02 04:14

I am creating an Android app and I need to persist a Map. I\'ve just started to use Realm ORM, as it supports one-to-one and one-to-many,

相关标签:
2条回答
  • 2021-01-02 04:48

    Well, if you do have the luxury of reworking the persistence layer a bit, then the simplest solution is to not use a Map<String at all.

    A Map<String literally means that a particular String is associated with one object. You can do the same thing just by having that String be part of your RealmObject. Then you can query based on that.

    So any RealmResults` with a query for the string will contain one element, and that element will be the value of said map.

    0 讨论(0)
  • 2021-01-02 05:10

    As you notice, Realm doesn't yet support maps: https://github.com/realm/realm-java/issues/759

    You could use the model classes:

    class MyData extends RealmObject {
        private RealmList<MyMapEntry> myMap;
    }
    
    class MyMapEntry extends RealmObject {
        private String key;
        private MyClass value;
    }
    

    Say you have a MyData object called myData and you wish to fetch the value associated with myKey, the query MyClass myClass = myData.getMyMap().where().equalTo("key", myKey).firstFirst() might be useful.

    0 讨论(0)
提交回复
热议问题