2011-11-18 30 views
0

ormlite-Android的4.29,ormlite核心 - 4.29ORMLite foriegncollection刷新

我有这样PantryCheckLine对象ForiegnCollection我PantryCheck类。

@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

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

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

希望这会有所帮助。

+0

真的很感谢你的想法,但我必须以不同的方式来工作。出现上述问题是因为ForeignCollection未被重新生成/刷新。 – Rakhita