ActiveAndroid: столбцы даты не созданы

Я пытаюсь сохранить объект Person с помощью ActiveAndroid. Я установил дату рождения так: person.setBirthdate(new java.sql.Date((new Date()).getTime()));. После назначения всех данных я звоню person.save();.

Я получаю список всех лиц из базы данных с помощью этой команды: new Select().from(Person.class).execute();

Если я не закрываю приложение, все работает нормально (дата рождения всегда возвращается правильно из базы данных). Однако, когда я полностью закрываю приложение, а затем перезапускаю его, дата рождения всегда равна нулю. Все остальные поля (имя, фамилия и т. д.) заполнены правильно.

Я действительно не знаю, почему это происходит, и был бы признателен за помощь!

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

Второе редактирование: я добавил новый столбец (строку), который сохраняется в базе данных и отлично работает. Так что проблема не в устаревшей базе данных. Создаются все столбцы, кроме столбца даты.

Я также изменил тип данных даты на строку. Затем дата рождения была сохранена. Изменение его обратно на тип данных Date снова привело к исходной проблеме. Действительно странно... Кто-нибудь знает, что происходит?


person Liz_17    schedule 06.09.2015    source источник
comment
почему вы используете java.sql.Date вместо java.util.Date?   -  person LunaVulpo    schedule 06.03.2017
comment
ты решил проблему?   -  person LunaVulpo    schedule 06.03.2017
comment
Я использовал DateTime JodaTime в качестве типа поля столбца, и он молча не создавал столбец в базе данных SQLIte. Если вы собираетесь это сделать, вам нужно создать собственный TypeSerializer. См. дополнительную информацию: github.com/pardom/ActiveAndroid/issues/516   -  person Joshua Pinter    schedule 29.03.2017
comment
@LunaVulpo Извините, я пропустил ваш комментарий. Нет, к сожалению, тогда я не смог решить проблему :/   -  person Liz_17    schedule 22.11.2017


Ответы (1)


Это должно быть какая-то проблема с кэшированием. для сохранения даты попробуйте использовать сериализатор типов. это так просто, просто прочитайте эту страницу.

person mehdi    schedule 08.09.2015
comment
Вы пытались обновить свою схему или удалить и снова переустановить приложение? - person mehdi; 08.09.2015
comment
Я обновил свою схему (если это означает увеличение номера версии базы данных) и переустановил приложение, но все еще не работает... - person Liz_17; 08.09.2015
comment
Вы отвечаете совсем не правильно. Дата автоматически сериализуется AA в соответствии с github.com/codepath/android_guides/wiki/ActiveAndroid- Руководство - person nutella_eater; 25.04.2016