2011-11-18 3 views
0

ormlite - 안드로이드 - 4.29 새로 고침, ormlite 코어 - 4.29ORMLite foriegncollection이

나는 나의 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"); 

귀하의 협조에 감사드립니다.

답변

0

delete() 메서드가 수행중인 작업이 확실하지 않아 구체적으로 대답 할 수 없습니다. Dao 전화 또는 ForeignCollection 전화에 대한 자세한 내용을 질문에 편집하면 여기에 세부 정보를 추가 할 수 있습니다.

컬렉션 크기가 영향을받는 유일한 방법은 컬렉션 자체에 remove(Object) 메서드를 사용한 경우입니다. Dao을 사용하여 장면 뒤에서 항목을 삭제 한 경우 컬렉션은 삭제가 발생했음을 알지 못하며 그 열의 반입 된 내부 목록 크기는 영향을받지 않습니다. 게으른 콜렉션 (eager = false)은 항상 데이터베이스로 이동하므로 remove(Object) 또는 dao.delete(Object)이 작동합니다.

희망이 도움이됩니다.

+0

정말 고맙게 생각하지만, 다른 방식으로 해결해야합니다. 위의 문제는 ForeignCollection이 재생성/새로 고침되지 않았기 때문에 발생했습니다. – Rakhita