Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Hibernate @Version powoduje błąd ograniczenia klucza obcego bazy danych

Pierwszy :

Twój FK powinien odnosić się do PK wskazanego podmiotu. W tym przypadku powinieneś mieć person.conference_room_id które odwołuje się do conferenceroom.id . Jeśli chcesz swój code jako pole identyfikujące ConferenceRoom encji, to nie używaj klucza zastępczego. Jeśli code kolumna nie jest kandydatem na PK, to też nie jest kandydatem na FK.

Drugi :

Połącz :

Utrzymuj :

Myślę, że pomyliłeś merge z persist . Z tego, co mogę powiedzieć po podanym kodzie, tworzysz nowy ConferenceRoom a nie modyfikowanie już istniejącego. Dlatego merge nie zrobi tego, czego chcesz. Spróbuj zmienić (dostarczoną) metodę na następującą:

public ConferenceRoom getNewConferenceRoom(Person p) {
    ConferenceRoom r = new ConferenceRoom();
    r.setCode("MyUniqueGeneratedCode");
    r.getPeople().add(p);
    // sessionFactory is spring injected member
    sessionFactory.getCurrentSession().persist(r); 
}

Te rzeczy powinny rozwiązać zgłoszone przez Ciebie problemy.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zapytanie MySQL do znalezienia wagi krawędzi na wykresie

  2. MySQL skutecznie kopiuje wszystkie rekordy z jednej tabeli do drugiej

  3. Pobieranie procentu z MySql z grupą według warunku i precyzji

  4. Wstawianie zmiennoprzecinkowych/dziesiętnych wartości PHP do MySQL

  5. Czy to dziwne, że moje połączenie SQLAlchemy MySQL zawsze kończy się uśpieniem?