दुर्भाग्य से, हाइबरनेट के पास आस्थगित बाधाओं के लिए समर्थन नहीं है।https://hibernate.atlassian.net/ ब्राउज़/एचएचएच-2248
आप entityManager.flush() विधि के साथ खेलने का प्रयास कर सकते हैं, मान लें कि आपके पास inst1 नाम वाले उपकरण हैं और inst2 :
Instrument inst1 = entityManager.find(Instrument.class, 1);
// change name of first Instrument to some random one
inst1.setName("inst3");
entityManager.flush();
Instrument inst2 = entityManager.find(Instrument.class, 2);
inst2.setName("inst1");
entityManager.flush();
inst1.setName("inst2");
वैकल्पिक रूप से आप डीबी से इकाइयां प्राप्त कर सकते हैं, उन्हें डीबी से हटा सकते हैं, फ्लश कर सकते हैं और अद्यतन इकाइयों को जारी रख सकते हैं। इस तरह आपको तीसरा नाम बनाने की ज़रूरत नहीं है।
उन समाधानों के प्रदर्शन प्रभाव के बारे में निश्चित नहीं है, आपको स्वयं पता लगाना होगा।