Mysql
 sql >> база данни >  >> RDS >> Mysql

Хибернация - ManyToOne &Inheritance / JOIND / mappedBy

Не мисля, че можете да постигнете това чрез картографиране на ManyToOne свързване с User обикновено в UserActivity субект. Това вероятно е твърде объркващо за доставчика на JPA (Hibernate).

Вместо това, мисля, че трябва да съпоставите асоциацията с User вской на Question , Answer и Comment субекти. Да, знам, че това ще бъде дублиран код, но изглежда, че единственият начин тогава ще можете да квалифицирате OneToMany съпоставяния в User с помощта на mappedBy справка.

Например вашият Question обект ще има асоциация, дефинирана като:

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

В зависимост от това колко умен (или не) е Hibernate относно горната асоциация, може да се наложи да посочите table="USER_ACTIVITY" в JoinColumn анотация.

След това User ще има OneToMany като:

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

По същия начин за всеки от Answer и Comment .

Разбира се, не съм пробвал това, така че може да греша.



  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 таблица

  2. Как да използвате добре многоядрените процесори във вашите PHP/MySQL приложения?

  3. Моделиране на бази данни:Как да категоризираме продукти като Amazon?

  4. Mysql Създаване на база данни със специални знаци в името

  5. MySQL:Може ли една съхранена процедура да извика Java програма?