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

Hibernate - ManyToOne &Inheritance / BERGABUNG / dipetakan Oleh

Saya tidak berpikir Anda dapat mencapai ini dengan memetakan ManyToOne asosiasi ke User secara umum di UserActivity kesatuan. Itu mungkin terlalu membingungkan bagi penyedia JPA (Hibernate).

Sebagai gantinya, saya pikir Anda perlu memetakan asosiasi ke User di masing-masing dari Question , Answer dan Comment entitas. Ya, saya tahu itu akan menjadi kode duplikat, tetapi sepertinya satu-satunya cara Anda kemudian dapat memenuhi syarat OneToMany pemetaan di User menggunakan mappedBy referensi.

Misalnya, Question . Anda entitas akan memiliki asosiasi yang didefinisikan sebagai:

@ManyToOne(cascade = { MERGE, PERSIST }, fetch = LAZY)
@JoinColumn(name = "ua_user_id")
private User questionUser;

Bergantung pada seberapa pintar (atau tidak) Hibernate tentang asosiasi di atas, Anda mungkin perlu menentukan table="USER_ACTIVITY" di JoinColumn anotasi.

Kemudian User akan memiliki OneToMany sebagai:

@OneToMany(mappedBy="questionUser", cascade = REMOVE)
private List<Question> questions = new ArrayList<>();

Demikian pula untuk setiap Answer dan Comment .

Tentu saja, saya belum mencobanya, jadi saya bisa saja salah.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MYSQL INNER JOIN dengan kemungkinan bidang kosong

  2. Instal mysqlclient untuk Django Python di Mac OS X Sierra

  3. Cara menggunakan like in where condition dalam sekuel, node js

  4. Prosedur Tersimpan MySQL vs. kueri kompleks

  5. Diperlukan kueri tunggal untuk mengambil data dari tabel