0

我有一个使用ActiveAndroid ORM的应用程序,我需要保存与内部列表和对象模型的列表,看起来像这样:ActiveAndroid优化相表

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)对于每个MyModeluser model所有更新从分贝,更新检索和保存

3)每个MyModel从db中检索,更新并保存

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

由于user(和其他内部对象)可以在不同的MyModel对象,我做下的相同:在节约MyModel我得到users并把它HashMap循环

,所以我获得了独特用户列表,并在MyModel更新后保存。 (但是相同的交易)。现在它将数据保存3-4秒。

,但看起来ActiveAndroid使得MyModelUser表之间的一些引用,所以当我试图从表中删除用户,我得到一个例外:

FOREIGN KEY constraint failed 

那么,该如何处理呢?

回答

0

由于ActiveAndroid最近3年不支持...我的解决方案是迁移到另一个orm。 还有一个原因是针对ActiveAndroid - is slower than others