Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Hibernacja - ManyToOne i Dziedziczenie / DOŁĄCZONE / mappedBy

Nie sądzę, że możesz to osiągnąć, mapując ManyToOne powiązanie z User ogólnie w UserActivity podmiot. To prawdopodobnie zbyt mylące dla dostawcy JPA (Hibernacja).

Zamiast tego myślę, że musisz zmapować powiązanie na User w każdym Question , Answer i Comment podmioty. Tak, wiem, że byłby to zduplikowany kod, ale wygląda na to, że jedyny sposób, w jaki będziesz mógł wtedy zakwalifikować OneToMany mapowania w User za pomocą mappedBy odniesienie.

Na przykład Twoje Question podmiot miałby powiązanie zdefiniowane jako:

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

W zależności od tego, jak sprytny (lub nie) Hibernate dotyczy powyższego skojarzenia, może być konieczne określenie table="USER_ACTIVITY" w JoinColumn adnotacja.

Następnie User miałby OneToMany jako:

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

Podobnie dla każdego z Answer i Comment .

Oczywiście nie próbowałem tego, więc mogę się mylić.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lista wszystkich procedur MySQL

  2. Napraw zduplikowane wpisy DB (błąd MySQL)

  3. Czy MySql obsługuje sp_getapplock?

  4. czy istnieje limit tego, co może obsłużyć skrzypce sql? sql fiddle niczego nie kompiluje i nie zwraca żadnych komunikatów o błędach

  5. zmień int na float (mysql)