sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Se puede definir una restricción INICIALMENTE DIFERIDA usando una anotación de Hibernate?

Desafortunadamente, Hibernate no admite restricciones diferidas.https://hibernate.atlassian.net/ navegar/HHH-2248

Podría intentar jugar con el método entityManager.flush(), digamos que tiene instrumentos con nombres inst1 y 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");

Alternativamente, puede obtener las entidades de la base de datos, eliminarlas de la base de datos, realizar el vaciado y conservar las entidades actualizadas. De esta forma no tienes que inventarte el tercer nombre.

No estoy seguro sobre el efecto de rendimiento de esas soluciones, tiene que averiguarlo usted mismo.