sql >> Database >  >> RDS >> PostgreSQL

Kan een INITIALLY DEFERRED-beperking worden gedefinieerd met behulp van een Hibernate-annotatie?

Hibernate biedt helaas geen ondersteuning voor uitgestelde beperkingen.https://hibernate.atlassian.net/ bladeren/HHH-2248

Je zou kunnen proberen te spelen met de methode entityManager.flush(), laten we zeggen dat je instrumenten hebt met namen inst1 en 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");

Als alternatief kunt u de entiteiten uit de database halen, ze uit de database verwijderen, flush uitvoeren en bijgewerkte entiteiten behouden. Zo hoef je de derde naam niet te verzinnen.

Niet zeker over het prestatie-effect van die oplossingen, moet u zelf uitzoeken.



  1. Zend Database Laatste ID van ingevoegde rij. (Postgres gebruiken)

  2. Hoe verbind je een Laravel-app met MySQL met behulp van MAMP?

  3. Oracle SQL krijgt het n-de element regexp

  4. Een normale query converteren naar een kruistabelquery in Access