ormlite-android-4.29,ormlite-core-4.29
在我的PantryCheck类中有一个PantryCheckLine对象的ForiegnCollection,如下所示。
@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");感谢你的帮助。
发布于 2011-11-18 21:49:29
我不能明确回答,因为我不确定delete()方法在做什么。如果您在您的问题中添加了有关正在进行的Dao调用或ForeignCollection调用的更多详细信息,我可以在此处添加详细信息。
影响集合大小的唯一方式是在集合本身上使用remove(Object)方法。如果您在幕后使用Dao删除该项,那么集合将不会知道发生了删除,并且其急切获取的内部列表大小不会受到影响。惰性集合(eager = false)总是访问数据库,所以remove(Object)或dao.delete(Object)都可以工作。
希望这能有所帮助。
https://stackoverflow.com/questions/8179392
复制相似问题