2015-09-06 27 views
5

ActiveAndroid ile Person nesnesini depolamaya çalışıyorum. Doğum tarihini şu şekilde ayarladım: person.setBirthdate(new java.sql.Date((new Date()).getTime()));. Tüm verileri atadıktan sonra, person.save(); numaralı telefonu arıyorum. Ben uygulama her şey (doğum tarihi hep veritabanından doğru döndürülür) çalışıyor kapatmak yoksa new Select().from(Person.class).execute();ActiveAndroid: Tarih sütunları yaratılmadı

:

Ben bu komutla veritabanından tüm kişilerin bir listesini almak. Ancak, uygulamayı tamamen kapattığımda ve yeniden başlattığımda, doğum tarihi her zaman boştur. Diğer tüm alanlar (ad, soyadı vb.) Doğrudur.

Bunun neden olduğunu gerçekten bilmiyorum ve bazı yardımları takdir ediyorum!

EDIT: Veritabanıma daha yakından baktıktan sonra, doğum tarihi sütununun oluşturulmadığını öğrendim. Yine de, uygulamayı kapatmazken neden verilerin kullanılabilir olduğundan emin değilim.

İkinci DÜZENLEME: Veritabanına kaydedilen ve gayet iyi çalışan yeni bir sütun (bir dize) ekledim. Yani sorun eski bir veritabanı değil. Tüm sütunlar ancak tarih sütunu oluşturulur.

Ayrıca tarih veri türünü bir dizgiye dönüştürdüm. Doğum tarihi daha sonra kurtarıldı. Bir Tarih veri türüne döndürüldüğünde, orijinal sorun tekrar ortaya çıktı. Gerçekten garip ... Neler olup bittiğini bilen var mı?

+0

java.sql.Date neden java.util.Date kullanıyorsunuz? – LunaVulpo

+0

sorunu çözdünüz mü? – LunaVulpo

+0

JodaTime'ın DateTime işlevini sütun alanım olarak kullanıyordum ve sessizce SQLIte veritabanında sütun oluşturmuyordu. Bunu yapmak için özel bir TypeSerializer oluşturmanız gerekir. Daha fazla bilgi için bakınız: https://github.com/pardom/ActiveAndroid/issues/516 –

cevap

3

Bazı önbelleğe alma sorunları olmalı. Kaydetme tarihi için type serializer kullanmayı deneyin. this page'u okumak çok kolay.

+0

Sadece bunu denedim ama hiçbir şey değişmedi ...:/ –

+0

Şemanınızı güncellemeyi veya tekrar uygulamayı tekrar yüklemeyi denediniz mi? – mehdi

+0

Şemamı güncelledim (eğer veritabanı sürüm numarası artarsa) ve uygulamayı yeniden yükledim, ancak hala çalışmıyor ... –