【问题标题】:Clean up old Realm objects?清理旧的 Realm 对象?
【发布时间】:2017-06-08 18:28:19
【问题描述】:

有没有一种简单的方法可以从 Realm 数据库中删除旧数据?就像某个对象有一天会被自动删除?

替代方法是添加一个带有日期的字段并提取并比较它以确定是否删除,但问题是Realm本身是否有方法来实现这一点

我不是在寻找查询

问题是是否有任何其他方法可以自动从 Realm 中删除旧对象,例如我们存储数据时的条件、参数、配置或领域方法,而不是每次都比较很明显,通过查询我们可以消除任何对象 我们想要的。

我已经看到了一些类似的问题 (like this one),但没有针对 Android (或 Java),在 Realm docs 中我发现的唯一类似方法是 关于migrations.

链接问题的规范(不是答案),只是为了澄清这不是一个基于 Swift 的问题,并且乍一看不要将其标记为重复。

【问题讨论】:

  • add a field with the date and extract and compare it to decide if delete 是的,你可以做到realm.where(MyClass.class).lowerThan("date", someDate).findAll().deleteAllFromRealm()

标签: java android realm


【解决方案1】:

添加一个带有日期的字段并根据该日期查询要删除的字段

那你就可以了

 realm.where(MyClass.class)
    .lowerThan("date", someDate)
    .findAll()
    .deleteAllFromRealm()

编辑:

问题是有没有其他方法可以自动从 Realm 中移除旧对象,比如我们存储数据时的条件、参数、配置或 Realm 方法,而不是每次都比较。

没有

很明显,通过查询,我们可以消除我们想要的任何对象。

链接的基于 Swift 的答案完全相同。

【讨论】:

    【解决方案2】:

    不,Realm 本身没有这样的功能。

    您的替代方案不错,但我不建议使用后台服务删除数据,因此请在查询时检查/删除数据。

    【讨论】:

      【解决方案3】:

      将警报管理器设置为每天(24 小时间隔) 在警报管理器回调中,只需使用以下代码删除旧数据

      realm.where(BeanClass.class)
          .lowerThan("date", currentDate)
          .findAll()
          .deleteAllFromRealm();
      

      【讨论】:

      • 至少这个答案更有创意,因为有报警管理器
      • 如果有任何需要删除的项目,您甚至可以将其放入带有 executeTransactionAsync 的 BaseActivity.onStart() 中。我没有意识到这个问题也是关于“如何在 Android 上执行周期性任务”。
      【解决方案4】:

      是的,你可以像这样删除旧的领域数据,

      realmConfiguration = new RealmConfiguration.Builder().build();
      Realm.deleteRealm(realmConfiguration);
      realm = Realm.getInstance(realmConfiguration);
      

      在上面的行中,第二行是

      Realm.deleteRealm(realmConfiguration);
      

      执行删除旧领域数据。或者您可以删除特定类的数据,

      realm.where(YourClass.class)
          .lowerThan("date", currentDate)
          .findAll()
          .deleteAllFromRealm()
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-10-25
        • 1970-01-01
        • 1970-01-01
        • 2011-01-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多