2009-04-17 37 views
6

मैं Google ऐप इंजन और लगातार विकल्प जेडीओ के साथ प्रयोग कर रहा हूं। मैं जानना चाहूंगा कि किसी क्षणिक ऑब्जेक्ट को किसी ऑब्जेक्ट ऑब्जेक्ट पर मैप करना संभव है या नहीं? या एक क्षणिक वस्तु के उपयोग के साथ लगातार वस्तु को अद्यतन करने के लिए कुछ?जेडीओ - ऑब्जेक्ट को अपडेट करना

मैं कोडिंग उदाहरण मैं वस्तुओं अद्यतन करने के लिए कोड का निम्न भाग देखें:

public void updateEmployeeTitle(User user, String newTitle) { 
PersistenceManager pm = PMF.get().getPersistenceManager(); 
try { 
    Employee e = pm.getObjectById(Employee.class, user.getEmail()); 
    if (titleChangeIsAuthorized(e, newTitle) { 
     e.setTitle(newTitle); 
    } else { 
     throw new UnauthorizedTitleChangeException(e, newTitle); 
    } 
} finally { 
    pm.close(); 
} 
} 

लेकिन यह नहीं है मैं क्या चाहते हैं, किसी को भी अगर मैं पूरी वस्तु को अपडेट कर सकते जेपीए की तरह पता है: वस्तु। अद्यतन करें();

तो मैं कुछ इस तरह करना चाहते हैं: तो वहाँ एक डेटासंग्रह में यह पता लगाने के लिए कोई रास्ता नहीं है

public User update(User u) { 
    PersistenceManager pm = PMF.get().getPersistenceManager(); 
    User usr; 
    try { 
     usr = pm.getObjectById(User.class, u.getId()); 
     // copy transient object u to persist object usr. 
        // on update of usr all changes in object u are persistent. 

    } finally { 
     pm.close(); 
    } 

    return u; 
} 

उत्तर

2

ए 'क्षणिक "वस्तु नहीं" पहचान "है। ध्यान से सोचें कि क्या आप क्षणिक वस्तुओं का उपयोग करना चाहते हैं, या अलग-अलग वस्तुओं का उपयोग करना बेहतर होगा या नहीं। जेपीए एक "अलग" ऑब्जेक्ट के बराबर उपयोग करता है। जेडीओ भी ऐसा कर सकता है और फिर आप बस कॉल करें। मेकपर्सिस्टेंट (detachedObj);

--Andy (DataNucleus)

+0

makePersistent काम नहीं करता है, तो पहले से ही वस्तु आईडी सेट (उदाहरण के लिए, जब पहले से डेटासंग्रह, या जब एक वेब प्रपत्र से आबादी से पढ़ें) है। – pjesi

+1

यदि ऑब्जेक्ट डेटास्टोर से पढ़ा जाता है और उसी लेनदेन में होता है तो मेकपर्सिस्टेंट को कॉल करने में कोई बात नहीं है, डेटास्टोर में कोई भी बदलाव स्वचालित रूप से डाल दिया जाता है। यदि ऑब्जेक्ट डेटास्टोर से पढ़ा जाता है और फिर अलग हो जाता है और आप कुछ बदलते हैं तो कॉल करने वाले को निश्चित रूप से "काम" करता है क्योंकि यह परिवर्तनों को जोड़ता है। यदि आपके पास विशिष्ट समस्याएं हैं तो मैं सुझाव दूंगा कि आप उन्हें Google के एपेंगेन समूह में रिपोर्ट करें – DataNucleus

संबंधित मुद्दे