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

Hubungan JPA OneToMany/ManyToOne tidak berfungsi - Apa yang saya lewatkan?

Hal utama yang ingin Anda perhatikan adalah menentukan sisi pemilik dari relasi dengan benar. Sejauh yang saya ingat, kesimpulan saya dari dokumentasi resmi (terkadang sulit dipahami) adalah bahwa pihak pemilik adalah pihak yang secara default akan memicu kaskade dan penghapusan transparan.

Misalnya, di atas, Anda telah mendefinisikan sisi pemilik sebagai ProjectEntity , jadi langkah terpenting agar persistensi bertingkat berfungsi adalah menambahkan proyek ke PersonEntity.projects .

Anda kemudian ingin memanggil persist di sisi pemilik relasi, yaitu

em.persist(projectTest);

Jika ini tidak membantu, saya sarankan Anda mengaktifkan SQL logging di penyedia JPA Anda untuk mengetahui pernyataan apa yang coba dijalankannya, dan terutama dalam urutan apa entitas ini insert ed.

Coba juga, sesuai komentar yang ada, untuk mempertahankan orang terlebih dahulu. Jika Anda melakukan ini, saya yakin cara yang benar adalah menambahkan bertahan entitas ke hubungan, yaitu:

PersonEntity persistedPerson = em.persist(personTest);
projectTest.setPersonId(persistedPerson);
em.persist(projectTest);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. aplikasi terhubung ke database

  2. Salin data ke tabel baru di MySQL

  3. Muat data infile, perbedaan antara Windows dan Linux

  4. RMySQL dbWriteTable dengan field.types

  5. MySQL menghitung kata yang cocok