PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Може ли ограничение INITIALLY DEFERRED да бъде дефинирано с помощта на анотация на Hibernate?

За съжаление, Hibernate няма поддръжка за отложени ограничения.https://hibernate.atlassian.net/ преглед/HHH-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");

Като алтернатива можете да получите обектите от DB, да ги изтриете от DB, да извършите промиване и да запазите актуализираните обекти. По този начин не е нужно да измисляте третото име.

Не сте сигурни за ефекта на производителността на тези решения, трябва да разберете сами.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да получите висока производителност при голяма транзакция (postgresql)

  2. Мога ли да използвам ключова дума на Postgres като псевдоним в списъка за избор?

  3. Настройването на Play 2.4.0 с Postgres и HikariCP води до грешка в конфигурацията

  4. Детерминиран ред на сортиране за прозоречни функции

  5. PL/pgSQL анонимен кодов блок