sql >> Database teknologi >  >> RDS >> Mysql

Hibernate @Version forårsager fejl i databasefremmednøglebegrænsning

Først :

Din FK bør referere til PK for den refererede enhed. I dette tilfælde skal du have person.conference_room_id som refererer til conferenceroom.id . Hvis du vil have din code at være identifikationsfeltet for ConferenceRoom enhed, så brug ikke en surrogatnøgle. Hvis code kolonne er ikke en PK-kandidat, så er den heller ikke en FK-kandidat.

Anden :

Flet :

Fortsæt :

Jeg tror, ​​du har forvekslet merge med persist . Ud fra hvad jeg kan se af den medfølgende kode, opretter du et nyt ConferenceRoom og ikke ændre en eksisterende. Derfor merge vil ikke gøre, hvad du vil have den til at gøre. Prøv at ændre din (medfølgende) metode til følgende:

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); 
}

Disse ting burde løse de problemer, du har rejst.




  1. ASCII()-funktion i Oracle

  2. UPDATE-sætning for at gentildele en kolonneværdi i henhold til en numerisk formel

  3. Oracle:flere tabelopdateringer => ORA-01779:kan ikke ændre en kolonne, der er knyttet til en ikke-nøglebevaret tabel

  4. Magento Mass Importer billeder med MAGMI - billeder undtaget