2012-08-05 11 views
5

ऑब्जेक्ट के साथ प्रतिस्थापित करता है मेरे पास एक मौजूदा Google ऐप इंजन जावा एप्लिकेशन जेपीए के साथ चलता है और अब मैं कई अलग-अलग उद्देश्यों के लिए ऑब्जेक्ट करने के लिए आगे बढ़ने की कोशिश कर रहा हूं।Google ऐप इंजन जावा jpa @ OneToMany/@ ManyToOne को

वर्तमान एप्लिकेशन में संस्थाओं का नीचे प्रतिनिधित्व है।

Class Parent{ 
    @Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    private Key key; 

    @OneToMany(cascade=CascadeType.ALL, mappedBy="parent") 
    private List<Child> childs = null; 
} 

Class Child{ 
    @Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    private Key key; 

    @ManyToOne 
    private Parent parent; 

} 

मैं ऑब्जेक्टिफ़ाई में उपर्युक्त प्रतिनिधित्व कैसे प्राप्त कर सकता हूं? मैं objectify4 का उपयोग कर रहा हूँ।
मैंने @ माता-पिता को देखा है, लेकिन माता-पिता को लाने के दौरान सीधे बाल संस्थाओं की सूची लोड करना संभव नहीं है?

धन्यवाद,

Ramesh.V

उत्तर

2

objectify अलग concepts संबंधपरक डेटा स्टोर और ORMs से उपयोग करता है। संबंध Key एस का उपयोग करके बनाए जाते हैं और स्वचालित रूप से लोड नहीं होते हैं। आप ऑब्जेक्ट here में रिश्तों के मॉडलिंग के बारे में पढ़ सकते हैं। @Parent संबंध something special है और यह 1: n या n: m रिश्तों के लिए प्रासंगिक नहीं है।

तो बुनियादी तौर पर आप

class Parent { 
    Key<Child>[] childs; 
} 

class Child { 
    Key<Parent> parent; 
} 

है और फिर आप Objectfy सेवा, उदा के माध्यम से संस्थाओं मिलेगा

Parent aParent = ofy.get(aChild.parent); 

कोई आलसी लोड संग्रह नहीं हैं। यदि आप वस्तुओं का एक सेट बनाना चाहते हैं तो आपको इसे स्पष्ट रूप से करने की आवश्यकता है।

+0

आपकी प्रतिक्रिया के लिए धन्यवाद, यह संभव माता पिता में बच्चे कुंजी/संदर्भ भंडारण के बिना माता पिता से बच्चे संस्थाओं को लाने के लिए है। –

+0

एसोसिएशन 'कुंजी' द्वारा व्यक्त किए जाते हैं, इसलिए आपको उन्हें 'माता-पिता' या 'चाइल्ड' में चाहिए। यदि आपके पास दोनों में आप एक बिडरेक्शनल एसोसिएशन बनाते हैं जो बनाए रखना कठिन होता है और अक्सर बहुत उपयोगी नहीं होता है। आप 'मूल' में 'कुंजी' सरणी को छोड़ सकते हैं। फिर आपको विशिष्ट 'माता-पिता' कुंजी के साथ सभी 'चाइल्ड' ऑब्जेक्ट्स प्राप्त करने के लिए फ़िल्टर करने के लिए ऑब्जेक्टिफ़ाई के तरीकों की आवश्यकता है। यह विशेष रूप से उपयोगी होता है यदि आपके पास बड़ी संख्या में बच्चे हैं जिन्हें कुछ मानदंडों या पेजिंग द्वारा आगे फ़िल्टर किया जाना चाहिए। –

+0

लेकिन जेपीए माता-पिता या बच्चे में चाबियाँ जमा किए बिना कैसे काम करता है? मेरा मौजूदा जीएई जावा एप्लिकेशन जेपीए का उपयोग करता है और मुझे लगता है कि डेटास्टोर में बच्चे या माता-पिता में कोई भी कुंजी संग्रहित नहीं है। और इसमें माता-पिता या बच्चे दोनों में केवल माता-पिता के बच्चे के रिश्ते नहीं हैं। मेरे परिवर्तन अब मौजूदा डेटाबेस को प्रभावित नहीं करना चाहिए। मैं यह कैसे कर सकता हूं। आपके विस्तृत स्पष्टीकरण के लिए धन्यवाद। –