DB4O закрыть () стереть БД? - PullRequest
       21

DB4O закрыть () стереть БД?

0 голосов
/ 23 ноября 2010

Я использую db4o для хранения различных объектов в приложении для Android.Я получаю содержимое json с сервера, а затем их в объекты (контакты здесь), которые я храню в файле db4o.

ObjectContainer mainDB = Db4oEmbedded.openFile(dbConfig(), DB_MAIN);
mainDB.store(aContact);

Теперь, если я напрямую сделаю запрос, чтобы получить их обратно из БД, это работает.

try {
ObjectSet<Contact> result = db.queryByExample(Contact.class);
contacts = new ArrayList<Contact>(result);
} catch (Exception e) {
e.printStackTrace();
}

Я могу зациклить на массиве и контакты там, я могу напечатать их имена и другие поля.Но теперь, если я закрою de db:

mainDB.close();

Если я снова открою его с тем же кодом, то внутри уже ничего не будет, contacts.size () вернет 0. Что не так?Любая идея?Заранее спасибо ...

Ответы [ 2 ]

1 голос
/ 24 ноября 2010

Если вы пытаетесь выполнить запрос SODA, а не запрос, например, это работает?

0 голосов
/ 26 ноября 2010

Каков результат Environment.getExternalStorageState ()? Там может быть проблема с DIR. Что произойдет, если вы попытаетесь использовать Context.getExternalFilesDir () в качестве каталога или getExternalStoragePublicDirectory ()?

Что произойдет, если вы используете этот каталог при открытии контейнера?

ctx.getDir ("data", 0) + "/" + "db.file";

где ctx - контекст приложения.

...