PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Hibernacja „Odwrotność” w pliku mapowania

Odwrotność decyduje tylko, który podmiot w relacji jest odpowiedzialny za aktualizację bazy danych w celu odzwierciedlenia powiązania.

Załóż dwukierunkową asocjację jeden do wielu. W kodzie A i B występują dwie klasy, A zawiera zbiór B, B utrzymuje odniesienie do A. Na poziomie bazy danych do aktualizacji jest tylko jeden klucz obcy, tabela dla B zawiera kolumnę z kluczem podstawowym A.

W tym przypadku załóżmy, że odwrotność =prawda po stronie ustalonej. Oznacza to, że samo dodanie jednostki do zestawu nie spowoduje uruchomienia aktualizacji klucza obcego. Ponieważ odpowiedzialność za aktualizację klucza obcego spoczywa na B. Tak więc dodanie obiektu B do zestawu, który utrzymuje A, nie wystarczy, aby zaktualizować kolumnę klucza obcego. objectA.addToSetOfB(objectB) nie wpłynie na klucz obcy.

Dopiero gdy B otrzyma odwołanie do A, klucz obcy w tabeli dla B zostanie zaktualizowany. Zatem objectB.setA(objectA) z pewnością zaktualizuje klucz obcy i faktycznie skonfiguruje relację.

Myślę, że ta sama koncepcja przeniesie się również na wiele relacji.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak działa Tand() w PostgreSQL

  2. Wytnij ciąg po pierwszym wystąpieniu znaku

  3. Jak znaleźć najkrótszą odległość od punktu do wielokąta?

  4. Czy zrzut Postgresql tworzy sekwencje, które zaczynają się od ostatniego klucza lub po nim?

  5. Poświadczenia stałej bazy danych Heroku