मैं सक्रिय एंड्रॉइड के साथ Person
ऑब्जेक्ट को स्टोर करने का प्रयास कर रहा हूं। मैंने इस तरह जन्मदिन निर्धारित किया: person.setBirthdate(new java.sql.Date((new Date()).getTime()));
। सभी डेटा आवंटित करने के बाद मैं person.save();
पर कॉल कर रहा हूं।सक्रिय एंड्रॉइड: दिनांक कॉलम नहीं बनाया गया
मैं इस आदेश के साथ डेटाबेस से सभी व्यक्तियों की एक सूची प्राप्त: new Select().from(Person.class).execute();
अगर मैं बंद नहीं करते एप्लिकेशन सब कुछ ठीक काम करता है (जन्मतिथि हमेशा डेटाबेस से सही ढंग से दिया जाता है)। हालांकि, जब मैं ऐप को पूरी तरह से बंद करता हूं और फिर इसे पुनरारंभ करता हूं, तो जन्मदिन हमेशा शून्य होता है। अन्य सभी फ़ील्ड (पहला नाम, अंतिम नाम इत्यादि) सही हैं।
मुझे सच में नहीं पता कि यह क्यों हो रहा है और कुछ मदद की सराहना करता है!
संपादित करें: मेरे डेटाबेस पर नज़र डालने के बाद मुझे पता चला कि जन्मदिन-कॉलम नहीं बनाया गया है। मुझे अभी भी यकीन नहीं है कि ऐप बंद नहीं होने पर डेटा क्यों उपलब्ध है।
दूसरा EDIT: मैंने एक नया कॉलम (एक स्ट्रिंग) जोड़ा जो डेटाबेस में सहेजा गया है और ठीक काम करता है। तो समस्या पुरानी डेटाबेस नहीं है। सभी कॉलम लेकिन दिनांक कॉलम बनाया गया है।
मैंने दिनांक डेटाटाइप को एक स्ट्रिंग में भी बदल दिया। जन्मदिन को तब बचाया गया था। इसे दिनांक डेटाटाइप पर वापस बदलना मूल समस्या में फिर से हुआ। वास्तव में अजीब ... क्या किसी को पता है कि क्या चल रहा है?
आप java.sql.Date का उपयोग क्यों करते हैं java.util.Date? – LunaVulpo
क्या आपने समस्या का समाधान किया? – LunaVulpo
मैं अपने कॉलम फ़ील्ड प्रकार के रूप में जोडाटाइम की 'डेटटाइम' का उपयोग कर रहा था और यह चुपचाप SQLIte डेटाबेस में कॉलम नहीं बना रहा था। यदि आप ऐसा करने जा रहे हैं तो आपको एक कस्टम टाइपसेरियलाइज़र बनाना होगा। अधिक जानकारी के लिए इसे देखें: https://github.com/pardom/ActiveAndroid/issues/516 –