我有一个使用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从db检索、更新和保存
3)每个MyModel从db检索、更新和保存
所以整个过程大约需要7-9秒。
由于user (和其他内部对象)在不同的MyModel对象中可能是相同的,下面我将这样做:
在保存MyModel的循环中,我获取users并将其放入HashMap,因此我获得了唯一用户的列表,并在MyModel更新后保存它。(但相同的交易)。现在它保存数据3-4秒。
但是,ActiveAndroid在MyModel和User表之间做了一些引用,所以当我试图从表中删除用户时,我得到了一个例外:
FOREIGN KEY constraint failed那我该怎么处理呢?
发布于 2017-06-29 11:57:05
由于ActiveAndroid在过去3年里不受支持.对我来说,解决方案是迁移到另一个orm。还有一个反对ActiveAndroid - 比别人慢的理由
https://stackoverflow.com/questions/44349123
复制相似问题