Я пытаюсь сохранить объект Person
с помощью ActiveAndroid. Я установил дату рождения так: person.setBirthdate(new java.sql.Date((new Date()).getTime()));
. После назначения всех данных я звоню person.save();
.
Я получаю список всех лиц из базы данных с помощью этой команды: new Select().from(Person.class).execute();
Если я не закрываю приложение, все работает нормально (дата рождения всегда возвращается правильно из базы данных). Однако, когда я полностью закрываю приложение, а затем перезапускаю его, дата рождения всегда равна нулю. Все остальные поля (имя, фамилия и т. д.) заполнены правильно.
Я действительно не знаю, почему это происходит, и был бы признателен за помощь!
EDIT: внимательно изучив мою базу данных, я обнаружил, что столбец даты рождения не создан. Я до сих пор не уверен, почему данные доступны, когда приложение не закрыто.
Второе редактирование: я добавил новый столбец (строку), который сохраняется в базе данных и отлично работает. Так что проблема не в устаревшей базе данных. Создаются все столбцы, кроме столбца даты.
Я также изменил тип данных даты на строку. Затем дата рождения была сохранена. Изменение его обратно на тип данных Date снова привело к исходной проблеме. Действительно странно... Кто-нибудь знает, что происходит?
DateTime
JodaTime в качестве типа поля столбца, и он молча не создавал столбец в базе данных SQLIte. Если вы собираетесь это сделать, вам нужно создать собственный TypeSerializer. См. дополнительную информацию: github.com/pardom/ActiveAndroid/issues/516 - person Joshua Pinter   schedule 29.03.2017