2012-12-12 18 views
5

में द्वि दिशात्मक 1: एम को संभालने का सही तरीका एक द्वि-दिशात्मक 1: एम संबंध से निपटने के दौरान ग्रीन-डीएओ डीबी में एक नई वस्तु डालने का सही तरीका क्या है?द्वि दिशात्मक 1: एम संबंध में निपटने के लिए ग्रीन-डीएओ

आइए कहें, मेरे पास एक चैट एप्लिकेशन है जिसमें वार्तालाप इकाई और एक संदेश इकाई है। प्रत्येक वार्तालाप में संदेशों की एक सूची होती है, और प्रत्येक संदेश में माता-पिता की बातचीत होती है।

क्या मैं अब के रूप में क्या है:

Conversation conv = new Conversation(); 
ConversationDao.insert(conv); 
List<Message> list = conv.getMessageList(); 

Message msg = new Message(); 
MessageDao.insert(msg); 

msg.setParent(conv.getId()); 
list.add(msg); 
// SHOULD I UPDATE THE CONVERSATION IN THE DB??? 

यह है कि मैं इस को सही ढंग से नहीं कर रहा हूँ और मैं यह करने के लिए सही तरीका करने के लिए कुछ मार्गदर्शन विज्ञापन पाने के लिए प्यार होता है मुझे लगता है। पहले से

धन्यवाद ...

संपादित करें:
के रूप में, मेरी टिप्पणी से देखा जा सकता कोड तरह से मैं यहाँ लिखा लागू करने के लिए कोशिश कर के बाद, मैं बातचीत मैं था के बजाय एक null लिंक करने की कोशिश कर रहा है।
मैं अपने कोड थोड़ा बदल गया है और अब यह इस तरह दिखता है:

private static void linkMessageToAuthorAndParent(Message messageObj, Thread parent) { 
    List<Message> threadsMessages = parent.getMessageList(); 
    messageObj.setThread(parent); 

    messageDao.insert(messageObj); 

    threadsMessages.add(messageObj); 
    Log.d("DtabaseHelper.parseMessage", "message was inserted"); 
} 

लेकिन फिर से, मेरी समस्या यह है कि मुझे यकीन है कि कनेक्शन अब द्वि-दिशात्मक है नहीं कर रहा हूँ है।
अब मुझे धागेडाओ अपडेट करना चाहिए?

Conversation conv = new Conversation(); 
ConversationDao.insert(conv); 
List<Message> list = conv.getMessageList(); 

Message msg = new Message(); 
msg.setParent(conv.getId()); // Set FK *before* inserting 
MessageDao.insert(msg); 

list.add(msg); 

official documentation on relations में एक अनुभाग "हल और अद्यतन कर रहा है करने के लिए कई संबंध" इस पर कुछ पृष्ठभूमि जानकारी दे रही है:

उत्तर

0

इसे इस तरह की कोशिश करो।

+0

मुझे यह कहना है कि यह वास्तविक जीवन में काम नहीं करता है, मैंने इसे अपने कोड में करने की कोशिश की और 'msg.getConverstaion() '' null' का नतीजा था। मुझे 'msg.setConversation (conv)' – thepoosh

+0

का उपयोग करना पड़ा था क्या आपने डीएओ का उपयोग करके इकाई को डालने के पहले या बाद में msg.getConversation() को कॉल किया था? –

+0

हां, मैंने दस्तावेज में जो लिखा है, उसका पालन किया, लेकिन एक शून्य मूल्य मिला। 'msg.setConversation' का उपयोग किया गया और यह काम करता है, मुझे यकीन नहीं है कि दूसरी दिशा काम करती है, और यह मेरे प्रश्न – thepoosh