【问题标题】:Using realm for complex objects android将领域用于复杂对象android
【发布时间】:2017-01-18 22:00:24
【问题描述】:

我开始使用领域。它似乎工作正常,但我有一些问题。当我将领域用于具有原始字段的简单对象时,一切正常。但我在将它用于复杂对象时遇到了问题。

例如我有一个班级Passenger。它有几个字段

Segment segment;
Documents documents;
....

每个字段也有子对象。细分类

Flight flight;
Arrival arrival;
int pnrRequest;

据我所知,我将有几个表,我需要一对多的关系来连接这些表。我想要的是将乘客列表存储在数据库中。

问题是我已经将这些类作为模型,但它们没有扩展 RealmObject。我不想有一个用于模型和一个用于数据库的重复类。有没有办法避免文件重复和从一个模型转换到另一个模型?

【问题讨论】:

    标签: android object realm


    【解决方案1】:

    根据documentation 是可能的:

    扩展 RealmObject 基类的另一种方法是实现 RealmModel 接口并添加 @RealmClass 注解。

    【讨论】:

    • 如果我要创建这个对象的实例,它会自动在领域内创建一个记录吗?
    • 当然。将您的模型用作典型的 RealmObjects
    • у меня довольно большой объект и есть список этих объектов(пассажиров), а что если сериализовать данные, залить в базу, а потом десериализовать когда мне нужно. Насколько это медленно будет происходить? дело в том что мне нужно хранить список пассажиров в контексте текущей сессии и потом этот список можно убить。 Пока я его храню в статическом классе что не есть хорошо, но работает оно быстро。
    • Не понимаю, почему плохо хранить сессию в памяти... Кажется, что как раз таки в базту данных её толкать неся
    • согласен。 Я тоже хочу хранить в раме, но у меня есть директор, который любит копаться в чужом коде, он против хранения в раме。 хз буду делать как я считаю нужным。 Ареалмбуду только юзать если что-то нужно оффлайн хранить
    【解决方案2】:

    Realm 要求所有应该持久化的模型必须扩展 RealmObject 或实现接口 RealmModel(参见 https://realm.io/docs/java/latest/#realmmodel-interface)。如果这些方法都不适合您,您将需要复制该类并在它们之间设置转换方法。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多