Hibernate bohužel nemá podporu pro odložená omezení.https://hibernate.atlassian.net/ procházet/HHH-2248
Můžete zkusit hrát s metodou entityManager.flush(), řekněme, že máte nástroje s názvy inst1 a 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");
Alternativně můžete získat entity z DB, odstranit je z DB, provést vyprázdnění a zachovat aktualizované entity. Tímto způsobem nemusíte vymýšlet třetí jméno.
Nejste si jisti účinností těchto řešení, musíte na to přijít sami.