मैं अनिवार्य रूप से एक "@Ignore" प्रकार एनोटेशन की तलाश में हूं जिसके साथ मैं एक विशेष क्षेत्र को जारी रखने से रोक सकता हूं। यह कैसे हासिल किया जा सकता है?जेपीए दृढ़ता के दौरान एक क्षेत्र को अनदेखा करने का सबसे तेज़ तरीका?
उत्तर
@Transient
आपकी आवश्यकताओं का अनुपालन करता है।
किसी फ़ील्ड को अनदेखा करने के लिए, इसे @Transient
के साथ एनोटेट करें ताकि इसे हाइबरनेट द्वारा मैप नहीं किया जाएगा।
स्रोत: Hibernate Annotations।
यह उत्तर थोड़ा देर से आता है, लेकिन यह प्रतिक्रिया को पूरा करता है।
आदेश एक इकाई से कोई फ़ील्ड से बचने के लिए डीबी एक में कायम किए जाने की दो तंत्रों में से एक का उपयोग कर सकते हैं:
@Transient - जेपीए एनोटेशन एक क्षेत्र के रूप में अंकन persistable नहीं
transient कीवर्ड जावा में सावधान रहें - इस कीवर्ड का उपयोग करके, जावा से किसी भी धारावाहिक तंत्र के साथ क्षेत्र को उपयोग करने से रोका जाएगा। इसलिए, यदि फ़ील्ड को क्रमबद्ध किया जाना चाहिए तो आप बेहतर @ ट्रांसिएंट एनोटेशन का बेहतर उपयोग करेंगे।
कैसे मैं बस विधि प्राप्त करने पर दृढ़ता को अनदेखा करना चाहता हूं? उदाहरण के लिए: myjparepository.save() मॉडल को सामान्य रूप से सहेजने के लिए, और myjparepository.find (id) उस फ़ील्ड को अनदेखा कर देगा जो मैं चाहता हूं? – xtiger
कोई विचार नहीं है कि यह संभव है। क्षमा करें –
ऊपर जवाब पूरा करने के लिए, मैं एक XML मैपिंग फ़ाइल का उपयोग करते हुए जहां न तो @Transient
है और न ही transient
काम किया मामला था ... मैं xml फ़ाइल में क्षणिक जानकारी डाल करने के लिए किया था:
<attributes>
(...)
<transient name="field" />
</attributes>
करने के लिए एक क्षेत्र को अनदेखा करें, इसे @Transient
के साथ एनोटेट करें ताकि इसे हाइबरनेट द्वारा मैप नहीं किया जाएगा।
लेकिन फिर जैक्सन JSON में कनवर्ट करते समय क्षेत्र को क्रमबद्ध नहीं करेगा।
आप JSON साथ जेपीए मिश्रण की जरूरत है (जेपीए द्वारा छोड़ देते हैं, लेकिन अभी भी जैक्सन में शामिल हैं) @JsonInclude
का उपयोग करें:
@JsonInclude()
@Transient
private String token;
तुम भी अक्रमांकन दौरान JSON में JsonInclude.Include.NON_NULL का उपयोग करें और क्षेत्रों को छुपा सकते हैं जब token == null
:
@JsonInclude(JsonInclude.Include.NON_NULL)
@Transient
private String token;
मैं जेएक्स-आरएस 2.0.1/जर्सी 2.25.1/जैक्सन 2.8.7 चला रहा हूं और उस स्टैक के साथ '@ जेसन इनक्लेयर 'आवश्यक नहीं है:' @ क्षणिक' फ़ील्ड अभी भी JSON में शामिल हैं। (आपको अभी भी मेरा वोट मिला है: तकनीक अन्य परिस्थितियों में बहुत उपयोगी हो सकती है)। – DKroot
हाइबरनेट 5.2.10, जर्सी 2.25.1 और जैक्सन 2.8.9 का उपयोग करके उपर्युक्त उत्तरों में से कोई भी मेरे लिए काम नहीं करता है। अंततः मुझे जवाब मिला (जैसे, वे हाइबरनेट 4 मॉड्यूल का संदर्भ देते हैं लेकिन यह 5 के लिए भी काम करता है) here। जेसन एनोटेशन में से कोई भी @Transient
पर काम नहीं करता था। स्पष्ट रूप से जैक्सन 2 @Transient
के साथ चिह्नित सामग्री को अनदेखा करने के लिए पर्याप्त 'स्मार्ट' है, जब तक कि आप इसे स्पष्ट रूप से नहीं बताते।
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-hibernate5</artifactId>
<version>2.8.9</version>
</dependency>
:
ObjectMapper jacksonObjectMapper = new ObjectMapper();
Hibernate5Module jacksonHibernateModule = new Hibernate5Module();
jacksonHibernateModule.disable(Hibernate5Module.Feature.USE_TRANSIENT_ANNOTATION);
jacksonObjectMapper.registerModule(jacksonHibernateModule);
यहाँ Hibernate5Module के लिए निर्भरता है: कुंजी hibernate5 मॉड्यूल (जो मैं अन्य हाइबरनेट एनोटेशन से निपटने के लिए उपयोग कर रहा था) जोड़ सकते हैं और मेरी जर्सी आवेदन में USE_TRANSIENT_ANNOTATION
सुविधा को अक्षम करने के लिए था
हर दूसरे विधि से ऊपर उल्लेख की कोशिश कर रहा है और दूसरों के '@ JsonProperty' ' बाद @ JsonInclude' '@JsonSerialize + @ JsonDeserialize'' mapper.configure (MapperFeature.PROPAGATE_TRANSIENT_MARKER, झूठी)); ' इस समाधान अंत में काम किया। धन्यवाद! – Aceonline
- 1. सबसे तेज़ तरीका एक टेम्पलेट
- 2. पायथन में sublist को पुनर्स्थापित करने का सबसे तेज़ तरीका
- 3. ग्रेगोरियन कैलेंडर को क्लोन करने का सबसे तेज़ तरीका?
- 4. स्ट्रिंग को बाइनरी में कनवर्ट करने का सबसे तेज़ तरीका?
- 5. ReSharper के साथ नामस्थान अपडेट करने का सबसे तेज़ तरीका?
- 6. जेपीए गतिशील दृढ़ता इकाई का नाम
- 7. इंटरनेट कनेक्शन का परीक्षण करने का सबसे तेज़ तरीका
- 8. अपने YII एप्लिकेशन को तेज़ करने के सबसे तेज़ तरीके?
- 9. एक MySQL विशेषज्ञ बनने का सबसे तेज़ तरीका?
- 10. डेटाबेस में एक फ़ील्ड बढ़ाने के लिए सबसे तेज़ तरीका
- 11. ज़ेंड फ्रेमवर्क सीखने का सबसे तेज़ तरीका?
- 12. पंक्तियों की एक्सेल रेंज प्राप्त करने का सबसे तेज़ तरीका
- 13. यादृच्छिक बिट्स उत्पन्न करने का सबसे तेज़ तरीका
- 14. वेब पृष्ठों को एक वेब साइट के भीतर स्क्रैप करने का सबसे तेज़ तरीका
- 15. सी # में प्राइम की गणना करने का सबसे तेज़ तरीका?
- 16. एक वेक्टर की सामग्री को एक सरणी में कॉपी करने का सबसे तेज़ तरीका?
- 17. स्ट्रिंग्स की एक सूची को एक समेकित स्ट्रिंग में परिवर्तित करने का सबसे तेज़ तरीका?
- 18. गिट शाखा बनाने के दौरान पता लगाने का सबसे आसान/तेज़ तरीका क्या है?
- 19. md5_file() को तेज़ बनाने का एक तरीका?
- 20. जेपीए दृढ़ता गुणों को गतिशील रूप से
- 21. एक सरल सिम्बियन ऐप बनाने का सबसे तेज़ तरीका?
- 22. जावा: प्रतिबिंब का उपयोग करके खेतों को इंजेक्ट करने का सबसे तेज़ तरीका क्या है?
- 23. सूची में किसी आइटम को खोजने का सबसे तेज़ तरीका?
- 24. क्या एक्सएसएल रूपांतरण के दौरान नेमस्पेस को अनदेखा करने का कोई तरीका है?
- 25. स्ट्रिंग को जांचने का सबसे तेज़ तरीका जावा
- 26. निर्देशिका आकारों की गणना करने के लिए सबसे तेज़ तरीका
- 27. एक खुली फ़ाइल खोजने के लिए lsof का उपयोग करने का सबसे तेज़ तरीका क्या है?
- 28. एकाधिक फ़ाइलों को डाउनलोड करने का एक तेज़ तरीका
- 29. एक पूर्णांक के बिट्स के माध्यम से गणना करने का सबसे तेज़ तरीका
- 30. intnt को UInt32 bitwise में डालने का सबसे तेज़ तरीका?
लेकिन फिर JSON JSON में कनवर्ट करते समय क्षेत्र को क्रमबद्ध नहीं करेगा ... कैसे हल करें? – MobileMon
जो आपके ऐप desing पर निर्भर करता है।यदि आप अपनी इकाई वर्ग को एनोटेट करते हैं - यह हर जगह लागू होता है; लेकिन यदि आप दाओ को एंटीट करते हैं जो इकाई का उपयोग करते हैं - यह एक और कहानी है। संक्षेप में: डीएओ का उपयोग करें जब आपके पास एकाधिक स्टोरेज – Sarief
@MobileMon जैक्सन – user3871754