का उपयोग कैसे करें greendao FAQ में यह कहता है "ग्रीनडाओ से शुरू करना स्ट्रिंग प्राथमिक कुंजी के लिए सीमित समर्थन है।" http://greendao-orm.com/documentation/technical-faq/greendao स्ट्रिंग प्राथमिक कुंजी -
मैं कहीं भी नहीं ढूंढ सकता जो कहता है कि यह कैसे करें।
मैं सर्वर अनुप्रयोग में अपनी प्राथमिक कुंजी के रूप में Guids का उपयोग कर रहा हूं, और एक एंड्रॉइड डिवाइस से दूरस्थ रूप से नया डेटा जेनरेट करने और सर्वर पर इसे अपलोड करने में सक्षम होना चाहता हूं। एंड्रॉइड डिवाइस पर डेटाबेस एसक्लाइट में है और पीओजेओ और डेटा एक्सेस लेयर उत्पन्न करने के लिए ग्रीनडाओ का उपयोग करता है। मैं सर्वर पर डेटा अपलोड होने पर प्राथमिक कुंजी टकराव से बचने के लिए गइड्स का उपयोग कर रहा हूं। मैं ग्रिड को तारों के रूप में संग्रहीत कर रहा हूं।
greendao वेबसाइट पर कुछ और सलाह है जो कहती है कि मुझे स्ट्रिंग धारण करने वाला द्वितीयक क्षेत्र बनाना चाहिए और फिर भी greendao द्वारा समर्थित लंबी प्राथमिक कुंजी का उपयोग करना चाहिए, लेकिन इसका मतलब है कि जब मैं आयात करता हूं तो मुझे अपने सभी डेटाबेस संबंधों को दोबारा जोड़ना होगा सर्वर से डेटा को ऐप तक जो दर्द होता है। यदि संभव हो तो स्ट्रिंग प्राथमिक कुंजी का उपयोग करना जारी रखना होगा।
क्या कोई मुझे बता सकता है कि यह कैसे करें?
यहाँ कुछ उदाहरण कोड है ...
मेरी जनरेटर में (मैं स्पष्टता के लिए क्षेत्रों के सबसे को हटा दिया है):
private static void addTables(Schema schema)
{
Entity unit = addUnit(schema);
Entity forSale = addForSale(schema);
Property unitIntId = forSale.addLongProperty("unitIntId").getProperty();
forSale.addToOne(unit, unitIntId);
}
private static Entity addForSale(Schema schema)
{
Entity thisEntity = schema.addEntity("ForSale");
thisEntity.addIdProperty();
thisEntity.addStringProperty("forSaleId");
thisEntity.addFloatProperty("currentPriceSqFt");
thisEntity.addStringProperty("unitId");
return thisEntity;
}
private static Entity addUnit(Schema schema)
{
Entity thisEntity = schema.addEntity("Unit");
thisEntity.addIdProperty();
thisEntity.addStringProperty("unitId");
thisEntity.addStringProperty("name");
return thisEntity;
}
मेरी Android एप्लिकेशन में मैं से सभी डेटा डाउनलोड सर्वर। इसमें GUID आईडी के आधार पर संबंध हैं।
//Add relations based on GUID relations
//ForSale:Units
for(ForSale forSale:Globals.getInstance().forSales)
{
if (forSale.getUnitId() != null && forSale.getUnit() == null)
{
for(Unit unit:Globals.getInstance().units)
{
if (forSale.getUnitId().equals(unit.getUnitId()))
{
forSale.setUnit(unit);
break; //only need the first one
}
}
}
}
तो मैं ईद के जोड़ने सब कुछ, greendao के लिए पूर्णांक एक और स्ट्रिंग (GUID) एक है कि होगा के दो सेट होने अंत: मैं पूर्णांक ईद की मैं इस तरह जनरेटर में बनाया करने के लिए इन फिर से अनुलग्न करनी जब यह सर्वर पर वापस अपलोड हो जाता है काम करते हैं। एक आसान तरीका होना चाहिए!
क्या आप पहले से ही कुछ कोशिश कर चुके थे? – AlexS
@AlexS - मैंने ऊपर कुछ उदाहरण कोड जोड़ा है। कोई विचार? – BobbyG
मैपिंग भी काम करता है? – AlexS