मुझे एंड्रॉइड में Realm
डेटाबेस में ऑटो वृद्धि कुंजी फ़ील्ड जोड़ने की आवश्यकता है। मैं यह कैसे कर सकता हूं? क्या यह संभव है?दायरे ऑटो वृद्धि क्षेत्र उदाहरण
अग्रिम धन्यवाद।
मुझे एंड्रॉइड में Realm
डेटाबेस में ऑटो वृद्धि कुंजी फ़ील्ड जोड़ने की आवश्यकता है। मैं यह कैसे कर सकता हूं? क्या यह संभव है?दायरे ऑटो वृद्धि क्षेत्र उदाहरण
अग्रिम धन्यवाद।
वर्तमान में Relam
का समर्थन नहीं करता auto_increment
पर इस मुद्दे को देखने के आप इस
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
// increment index
Number num = realm.where(dbObj.class).max("id");
int nextID;
if(num == null) {
nextID = 1;
} else {
nextID = num.intValue() + 1;
}
dbObj obj = realm.createObject(dbObj.class, nextID);
// ...
}
}
की तरह काम के आसपास ले जा सकते हैं जावा बाध्यकारी अभी तक प्राथमिक कुंजी का समर्थन नहीं करता है, लेकिन यह है रोडमैप पर और उच्च प्राथमिकता के साथ - देखें: https://groups.google.com/forum/#!topic/realm-java/6hFqdyoH67w । समाधान के लिए आप पैदा चाबी के लिए कोड के इस टुकड़े का उपयोग कर सकते हैं:
int key;
try {
key = realm.where(Child_pages.class).max("id").intValue() + 1;
} catch(ArrayIndexOutOfBoundsException ex) {
key = 0; // when there is no object in the database yet
}
मैं बेहतर प्रदर्शन (max("id")
हर बार के लिए क्वेरी करने की कोई जरूरत) के साथ एक अधिक सामान्य समाधान के रूप में singleton factory for generating primary keys का उपयोग करें। Document how to set an auto increment id?
हाय, कृपया, सिंगलटन का उपयोग कैसे करें समझा सकते हैं? मैंने अभी गस्ट की जांच की लेकिन मुझे नहीं पता कि यह मेरे कोड में कैसे जोड़ना है। –
1 प्रारंभ करें जब ऐप 'प्राथमिकKeyFactory.getInstance() को प्रारंभ करके शुरू होता है। प्रारंभ करें' तो आप दिए गए वर्ग – zacheusz
के लिए अगली कुंजी प्राप्त करने के लिए 'PrimaryKeyFactory.getInstance()। NextKey 'पर कॉल कर सकते हैं तो क्या मैं' PrimaryKeyFactory.getInstance() जोड़ सकता हूं। मेरे आवेदन के प्रारंभ में केवल एक बार शुरू करें, या मुझे इसे किसी भी कक्षा में जोड़ना चाहिए जिसे मैं इसका उपयोग करना चाहता हूं? –
इस पर किसी भी अद्यतन:
क्षेत्र Git हब में एक लंबा विचार-विमर्श करता है, तो आप और अधिक संदर्भ की जरूरत नहीं है? – ralphgabb
प्रति cmelchior, "स्वतः बढ़ी हुई कुंजी बस एक वितरित सेटिंग में काम नहीं करती है, इसलिए ऐसा कुछ नहीं है जिसे हम रीयल लाइब्रेरी में ही समर्थन प्रदान करना चाहते हैं।" (https://github.com/realm/realm-java/pull/3875#issuecomment-265435130) – markproxy