ORMLite foriegncollection обновить - PullRequest
       4

ORMLite foriegncollection обновить

0 голосов
/ 18 ноября 2011

ormlite-android-4.29, ormlite-core-4.29

У меня есть ForiegnCollection таких объектов PantryCheckLine в моем классе PantryCheck.

@ForeignCollectionField(eager = true, maxEagerForeignCollectionLevel = 1)
private ForeignCollection<PantryCheckLine> pantryCheckLines;

Допустим, у меня было 3Объекты PantryCheckLines и я удалили один.Затем я хочу удалить PantryCheck с объединенными PantryCheckLines его.Кажется, все работает.Но размер 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 голосов
/ 18 ноября 2011

Я не могу ответить конкретно, потому что я не уверен, что делает метод delete().Если вы отредактируете свой вопрос с более подробной информацией о том, какие звонки Dao или ForeignCollection выполняются, я могу добавить подробности здесь.

Единственный способ повлиять на размер коллекции - это использование remove(Object) метод на самой коллекции.Если вы использовали Dao для удаления элемента за кулисами, то коллекция не будет знать, что удаление произошло, и на размер загруженного внутреннего списка это не повлияет.Ленивые коллекции (eager = false) всегда отправляются в базу данных, поэтому может работать remove(Object) или dao.delete(Object).

Надеюсь, это поможет.

...