2015-09-06 86 views
5

我試圖用ActiveAndroid存儲一個Person對象。我設置這樣的生日:person.setBirthdate(new java.sql.Date((new Date()).getTime()));。分配所有數據後,我打電話給person.save();ActiveAndroid:未創建日期列

我從數據庫中獲取與此命令所有人員的名單:new Select().from(Person.class).execute();

如果我不關閉應用程序,一切工作正常(生日總是從數據庫返回正確)。但是,當我完全關閉應用程序並重新啓動它時,生日日期始終爲空。所有其他字段(名字,姓氏等)都是正確的。

我真的不知道爲什麼會發生這種情況,並希望得到一些幫助!

編輯:仔細看看我的數據庫後,我發現生日日期列沒有創建。我仍然不確定爲什麼數據在沒有關閉應用時可用。

第二次編輯:我添加了一個新的列(一個字符串),它被保存到數據庫,工作得很好。所以問題不是過時的數據庫。所有列,但日期列被創建。

我還將日期數據類型更改爲字符串。出生日期然後被保存。將其更改回日期數據類型導致原始問題再次出現。真的很奇怪......有誰知道最近怎麼回事?

+0

爲什麼你使用java.sql.Date insteed java.util.Date? – LunaVulpo

+0

你解決了這個問題嗎? – LunaVulpo

+0

我正在使用JodaTime的'DateTime'作爲我的列字段類型,並且它在SQLIte數據庫中沒有創建列。如果你打算這樣做,你必須創建一個自定義的TypeSerializer。看到這個更多的信息:https://github.com/pardom/ActiveAndroid/issues/516 –

回答

3

它應該是一些緩存問題。 保存日期嘗試使用type serializer。這很容易,只需閱讀this page

+0

我剛剛嘗試過但沒有任何更改...:/ –

+0

您嘗試更新您的架構或卸載並重新安裝應用程序嗎? – mehdi

+0

我更新了我的模式(如果這意味着增加數據庫版本號)並重新安裝了應用程序,但仍然無法正常工作... –