Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Hibernate @Version menyebabkan kegagalan batasan kunci asing basis data

Pertama :

FK Anda harus mereferensikan PK dari entitas yang dirujuk. Dalam kasus instan, Anda harus memiliki person.conference_room_id yang mereferensikan conferenceroom.id . Jika Anda ingin code menjadi bidang pengenal untuk ConferenceRoom entitas, maka jangan gunakan kunci pengganti. Jika code kolom bukan calon PK, maka juga bukan calon FK.

Kedua :

Gabungkan :

Bertahan :

Saya pikir Anda bingung merge dengan persist . Dari apa yang saya tahu dari kode yang diberikan, Anda membuat ConferenceRoom baru dan tidak mengubah yang sudah ada. Oleh karena itu, merge tidak akan melakukan apa yang Anda inginkan. Coba ubah metode (disediakan) Anda menjadi berikut:

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

Hal-hal ini akan memperbaiki masalah yang Anda ajukan.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kesalahan MySQL:mysql_fetch_assoc() mengharapkan parameter 1 menjadi sumber daya

  2. pernyataan siap ditiru vs pernyataan siap nyata

  3. Express js req.body kembali kosong

  4. Tidak dapat terhubung ke server MySQL lokal melalui soket

  5. Mempartisi tabel miliar baris data sepak bola menggunakan konteks data