ORMLite foriegncollection刷新

时间:2011-11-18 08:02:16

标签: ormlite

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");

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我无法专门回答,因为我不确定delete()方法在做什么。如果您使用有关Dao来电或ForeignCollection来电的详细信息的详细信息来修改您的问题,我可以在此处添加详细信息。

集合大小受影响的唯一方法是在集合本身使用remove(Object)方法。如果您使用Dao删除幕后的项目,那么集合将不知道删除发生了,并且其急切的内部列表大小不会受到影响。惰性集合(eager = false)始终转到数据库,因此remove(Object)dao.delete(Object)可以正常工作。

希望这有帮助。