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");
感谢您的帮助。
答案 0 :(得分:0)
我无法专门回答,因为我不确定delete()
方法在做什么。如果您使用有关Dao
来电或ForeignCollection
来电的详细信息的详细信息来修改您的问题,我可以在此处添加详细信息。
集合大小受影响的唯一方法是在集合本身使用remove(Object)
方法。如果您使用Dao
删除幕后的项目,那么集合将不知道删除发生了,并且其急切的内部列表大小不会受到影响。惰性集合(eager = false
)始终转到数据库,因此remove(Object)
或dao.delete(Object)
可以正常工作。
希望这有帮助。