首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ActiveAndroid优化相关表

ActiveAndroid优化相关表
EN

Stack Overflow用户
提问于 2017-06-03 22:34:03
回答 1查看 37关注 0票数 0

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

代码语言:javascript
复制
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从db检索、更新和保存

3)每个MyModel从db检索、更新和保存

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

由于user (和其他内部对象)在不同的MyModel对象中可能是相同的,下面我将这样做:

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

但是,ActiveAndroidMyModelUser表之间做了一些引用,所以当我试图从表中删除用户时,我得到了一个例外:

代码语言:javascript
复制
FOREIGN KEY constraint failed

那我该怎么处理呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-29 11:57:05

由于ActiveAndroid在过去3年里不受支持.对我来说,解决方案是迁移到另一个orm。还有一个反对ActiveAndroid - 比别人慢的理由

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44349123

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档