Moja aplikacja zużywa zdalny interfejs REST API i wypełnia lokalną bazę db greenDao. Mam usług z klasy AsyncTask:Jak połączyć wiele operacji greenDAO Tx w jedną transakcję?
@Override
protected Void doInBackground(Void... params) {
insert100RowsIntheFirstTable();
insert100RowsIntheSecondTable();
}
Wewnątrz każdej metody wstawiania mam insertOrReplaceInTx, którego używam głównie do przyrostu wydajności.
Potrzebuję, aby porzucić wyniki, jeśli któraś z metod nie odzyskać danych. To powinno być zrobione przez tę samą transakcję.
Zastanawiam się, czy dobrze jest otoczyć moje wywołania metody insert z mDaoSession.callInTx(callable)
mając wewnątrz metody insertOrReplaceInTx
. Czy mam rację?
Dodatkowo, w jaki sposób mogę zrezygnować z transakcji w przypadku zgłoszenia wyjątku - czy odbywa się to automatycznie za pomocą greenDao?
to działa - ładny – midnight
Jeśli pierwszy insertInTx uda, a drugi nie, nie będzie pierwszy zestaw obiektów pozostają w pamięci podręcznej sesji chociaż DB wycofana! transakcja? – Monstieur