मैंने वेब पर विभिन्न लेख पढ़े हैं, लेकिन वे इस बिंदु पर बिखरे हुए लगते हैं। वास्तव में मुझे अपनी कॉन्फ़िगरेशन में और हाइबरनेट सत्र प्राप्त करने के लिए मेरी विधि में क्या करने की आवश्यकता है। मैं संग्रहित प्रक्रियाओं के लिए कुछ प्रत्यक्ष एसक्यूएल कॉल करने की कोशिश कर रहा हूं। मेरे पास एक बड़ा कोड बेस है कि मैं रुबी से कई स्थिर तरीकों और संग्रहीत प्रक्रिया कॉल के साथ पोर्टिंग कर रहा हूं। अगर मुझे sessionFactory का उपयोग करने की ज़रूरत है, तो मुझे इसका उपयोग कैसे प्राप्त करें?Grails में मैं डोमेन क्लास स्थैतिक विधि के अंदर हाइबरनेट सत्र का उपयोग कैसे करूं?
उत्तर
एक स्थिर विधि आप आवेदन संदर्भ से sessionFactory सेम खींच सकते हैं से:
import org.codehaus.groovy.grails.commons.ApplicationHolder as AH
...
def ctx = AH.application.mainContext
def sessionFactory = ctx.sessionFactory
def session = sessionFactory.currentSession
यदि यह एक सेवा या नियंत्रक में है, तो आप सिर्फ sessionFactory
घोषित करने के लिए डीईएफ़ sessionFactory
यह इंजेक्शन की आवश्यकता है। उसके बाद आप
sessionFactory.currentSession
का उपयोग करने के लिए इसका उल्लेख कर सकते हैं।
सत्र का उपयोग करने वाले तरीकों का एक समूह इंजेक्ट करने के लिए हाइबरनेट-फ़िल्टर प्लगइन (फ़ाइल HibernateFilterGrailsPlugin.groovy) देखें।
मैं विशेष रूप से देख रहा हूँ कि कैसे करने के लिए उपयोग कर सकते हैं इसे डोमेन क्लास स्थैतिक विधि से प्राप्त करें। मैं नियंत्रक से सत्र प्राप्त नहीं करना चाहता हूं और इसे विधियों में पास करना चाहता हूं। 1 99 0 के दशक में – Andrew
मैंने Grails 2.1 के साथ यह कोशिश की और सत्र कारखाने को सेवा में इंजेक्शन नहीं लग रहा है। उपरोक्त बर्ट की विधि अभी भी काम करती है। –
मैंने अब 2.2.3 पर इसका परीक्षण किया और यह ठीक से काम करता है। –
यह आपको पूर्ण हाइबरनेट सत्र नहीं देता है, इसके बजाय यह एक Grails सत्र है, जिसमें कुछ विधियां अनुपलब्ध हैं (उदाहरण के लिए 'createSQLQuery') –
यह सत्य से भरा टिप्पणी नहीं प्रतीत होता है। सत्र "Grails" सत्र नहीं है, यह एक हाइबरनेट सत्र है। यह निर्धारित करने के लिए काफी आसान है; 'session.clear()' को 'println session.getClass() नाम 'के साथ बदलें और आउटपुट में आपको' org.hibernate.internal.SessionImpl' देखने की अत्यधिक संभावना है –
- 1. Grails डोमेन क्लास
- 2. Grails डोमेन क्लास
- 3. सी #: मैं व्युत्पन्न वर्ग की स्थैतिक विधि से बेस क्लास की स्थैतिक विधि कैसे कॉल करूं?
- 4. Grails: नाम से डोमेन क्लास
- 5. हाइबरनेट इंटरसेप्टर के अंदर हाइबरनेट सत्र कैसे प्राप्त करें?
- 6. डोमेन क्लास
- 7. मैं अपने grails ऐप में servlet का उपयोग कैसे करूं?
- 8. मैं grails testcase में executeQuery का उपयोग कैसे करूं?
- 9. मैं ग्रोवी में एक नकली स्थैतिक विधि कैसे रीसेट करूं?
- 10. Grails में आप डोमेन क्लास को कैसे संशोधित करते हैं?
- 11. मैं जावा में सुपर-सुपर क्लास का उपयोग कैसे करूं? [अंदर मिनी उदाहरण]
- 12. मैं सी # में स्थैतिक विधि से एक गैर स्थैतिक विधि कैसे कॉल करूं?
- 13. मैं प्रॉक्सी क्लास से प्रॉक्सी क्लास को कैसे प्राप्त करूं?
- 14. स्थैतिक विधि बनाम ऑब्जेक्ट विधि का उपयोग
- 15. Grails में ऑब्जेक्ट डोमेन ऑब्जेक्ट सेव()
- 16. रेल/प्रोन: मैं प्रोन क्लास के अंदर रेल सहायकों का उपयोग कैसे करूं?
- 17. मैं Grails में एक धागे के लिए एक हाइबरनेट सत्र कैसे बांधूं?
- 18. स्थैतिक विधि
- 19. मैं स्ट्रिंग को क्लास विधि में कैसे परिवर्तित करूं?
- 20. Grails डोमेन क्लास में दो फ़ील्ड के लिए मैं कैसे और XOR सत्यापन बना सकता हूं?
- 21. मैं grails डोमेन क्लास में डिफ़ॉल्ट मान कैसे सेट कर सकता हूं
- 22. सत्र के बिना Grails
- 23. प्रतिबिंब (जावा) का उपयोग करके मैं एक निजी स्थैतिक विधि कैसे शुरू करूं?
- 24. मैं Grails डोमेन ऑब्जेक्ट की किसी संपत्ति का प्रकार (वर्ग) कैसे प्राप्त करूं?
- 25. मैं डोमेन पर सिल्वरलाइट एक्सएपी फ़ाइल का उपयोग कैसे करूं?
- 26. का उपयोग जावा वर्गों Grails
- 27. मैं Android में showAlert विधि का उपयोग कैसे करूं?
- 28. मैं Grails 2.0 में कुकीज़ कैसे बना और पुनर्प्राप्त करूं?
- 29. मैं Grails डोमेन क्लास में एक क्षणिक चर कैसे बना सकता हूं?
- 30. हाइबरनेट सत्र कैसे तोड़ें?
धन्यवाद बर्ट। मैं इसे आज़मा दूंगा। – Andrew
एप्लिकेशनहोल्डर अब बहिष्कृत है, क्या इसके लिए एक अद्यतन पद्धति है? –
'आयात grails.util.Holders' गैर बहिष्कृत स्थैतिक धारक आयात करेगा और फिर' Holders.grailsApplication.mainContext.sessionFactory' आपको सत्र फैक्ट्री पर एक हैंडल देगा। – pendext