ActiveAndroidでPerson
オブジェクトを保存しようとしています。私はこのような誕生日を設定した:person.setBirthdate(new java.sql.Date((new Date()).getTime()));
。すべてのデータを割り当てたら、私はperson.save();
と呼んでいます。ActiveAndroid:日付列が作成されていません
私は、このコマンドを使用して、データベースからすべての人のリストを得る:new Select().from(Person.class).execute();
私はアプリのすべてが正常に動作閉じないと(誕生日は、常にデータベースから正しく返されます)。しかし、私は完全にアプリケーションを閉じて、それを再起動すると、生年月日は常にnullです。その他のフィールド(姓、名字など)はすべて正しいです。
私は本当になぜこれが起こっているのかわかりませんし、いくつかの助けに感謝します!
EDIT:私のデータベースを詳しく見てみると、birthdate-columnは作成されていないことがわかりました。私はまだアプリケーションを閉じていないときにデータが利用可能であるかどうかまだわかりません。
第2 EDIT:新しい列(文字列)を追加しました。この列はデータベースに保存され、正常に動作します。したがって、問題は古いデータベースではありません。日付列を除くすべての列が作成されます。
また、日付データ型を文字列に変更しました。誕生日は保存されました。 Dateデータ型に戻すと、元の問題が再び発生しました。本当に不思議なこと...誰も何が起こっているのか知っていますか?
なぜjava.sql.Date instute java.util.Dateを使用しますか? – LunaVulpo
あなたは問題を解決しましたか? – LunaVulpo
私はカラムのフィールドタイプとしてJodaTimeの 'DateTime'を使用していましたが、静かにSQLIteデータベースにカラムを作成していませんでした。これを行う場合は、カスタムTypeSerializerを作成する必要があります。詳細はこちらを参照してください:https://github.com/pardom/ActiveAndroid/issues/516 –