के माध्यम से अभिलेखों के बैच हटाने/शुद्ध करने के अधिकार - मैं डेटाबेस से 1,000,000 रिकॉर्ड (उदा।) को हटाना चाहता हूं। इसमें काफी समय लगता है -> लेन-देन का समय समाप्त हो जाता है और विफल रहता है। तो - मैं उन्हें बैच में हटा देता हूं, प्रति लेनदेन 25000 रिकॉर्ड कहते हैं। ओरेकल पर MySQL या ROWNUM पर सीमा खंड का उपयोग करना। ग्रेट यह काम करता है।जावा ओआरएम
मैं इसे डेटाबेस में स्वतंत्र तरीके से करना चाहता हूं। और जेपीए/हाइबरनेट का उपयोग करने वाले मौजूदा जावा कोड बेस से।
भाग्य से बाहर। जेपीए Query.setMaxResults और setFirstResult के पास 'प्रश्न' लिखने के लिए प्रभाव नहीं है (उदा। हटाएं)। कई इकाइयों को चुनकर उन्हें व्यक्तिगत रूप से हटाने के लिए स्मृति में बहुत धीमी और गूंगा है, मैं कहूंगा।
इसलिए मैं मूल क्वेरी का उपयोग करता हूं और एप्लिकेशन कोड में 'सीमा' खंड का प्रबंधन करता हूं। orm.xml में इस खंड को समाहित करना अच्छा होगा लेकिन ... "हाइबरनेट एनोटेशन 3.2 मूल प्रश्नों का उपयोग करके थोक अद्यतन/हटाए जाने का समर्थन नहीं करता है।" - http://opensource.atlassian.com/projects/hibernate/browse/ANN-469।
मुझे लगता है कि यह एक आम समस्या है। किसी को भी बेहतर डेटाबेस स्वतंत्र समाधान मिला है?
मुझे लगता है कि प्रश्न पूछने वाला यह पहले से ही कर रहा है, लेकिन यह पता लगाना कि डिलीट इतनी धीमी है कि यह समय समाप्त हो गया है। –