0

ormlite-android-4.29, ormlite-core-4.29

我的 PantryCheck 类中有一个ForiegnCollection这样的 PantryCheckLine 对象。

@ForeignCollectionField(eager = true, maxEagerForeignCollectionLevel = 1)
private ForeignCollection<PantryCheckLine> pantryCheckLines;

假设我有 3 个 PantryCheckLines 对象,我删除了一个。然后我想用它的组合 PantryCheckLines 删除 PantryCheck。一切似乎都在工作。但是大小ForiegnCollection不正确。

删除方法如下。

PantryCheckLineRepo pantryCheckLineRepo =
    new PantryCheckLineRepo(DaoFactory.getPantryCheckLineDaoInstance());
Collection<PantryCheckLine> pantryCheckLinesCollection =
    this.getPantryCheckLines();
Log.v("pantrychecklines size", pantryCheckLinesCollection.size());
pantryCheckLineRepo.delete(pantryCheckLinesCollection);
Log.v("pantrychecklines", "deleted");

感谢你的帮助。

4

1 回答 1

0

我无法具体回答,因为我不确定该delete()方法在做什么。如果您使用有关正在拨打什么Dao电话的更多详细信息来编辑您的问题ForeignCollection,我可以在此处添加详细信息。

影响集合大小的唯一方法是remove(Object)在集合本身上使用该方法。如果您使用Dao删除幕后的项目,那么集合将不知道删除发生了,并且其急切获取的内部列表大小不会受到影响。懒惰的集合(eager = false)总是去数据库,所以要么要么remove(Object)dao.delete(Object)工作。

希望这可以帮助。

于 2011-11-18T13:49:29.200 回答