【问题标题】:ActiveAndroid optimization relative tablesActiveAndroid优化相关表
【发布时间】:2023-03-14 18:32:01
【问题描述】:

我有使用 ActiveAndroid ORM 的应用程序,我需要保存带有内部列表和对象的模型列表,如下所示:

public class MyModel extends Model{
 @Expose
 @SerializedName(Columns.COLUMN_CREATED_AT)
 @Column(name=Columns.COLUMN_CREATED_AT)
 private Date createdAt;
  .... and other fields

 @Expose
 @SerializedName(Columns.User)
 public User users;
 .... another objects
}

所以,保存List<MyModel>的当前逻辑做下一步:

1) 在ActiveAndroid.beginTransaction() / ActiveAndroid.endTransaction(); 块中进行所有更新

2) 对于每个MyModel user model 从数据库中检索、更新和保存

3) 每个MyModel 从数据库中检索、更新和保存

所以整个过程大约需要 7-9 秒。

由于user(和其他内部对象)在不同的MyModel 对象中可以是相同的,所以我接下来要做:

在保存MyModel 的循环中,我得到users 并将其放入HashMap,所以我得到了唯一用户列表,并在MyModel 更新后保存它。 (但相同的交易)。现在它将数据保存 3-4 秒。

但是,看起来ActiveAndroidMyModelUser 表之间做了一些引用,所以当我试图从表中删除用户时出现异常:

FOREIGN KEY constraint failed

那么,我该如何处理呢?

【问题讨论】:

    标签: android performance optimization database-design activeandroid


    【解决方案1】:

    由于过去 3 年不支持 ActiveAndroid...我的解决方案是迁移到另一个 orm。 反对ActiveAndroid的另一个理由-is slower than others

    【讨论】:

      猜你喜欢
      • 2020-03-29
      • 2015-12-28
      • 1970-01-01
      • 2014-08-23
      • 2014-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-17
      相关资源
      最近更新 更多