Nemyslím si, že toho dosáhnete mapováním ManyToOne
přidružení k User
obecně v UserActivity
entita. To je pravděpodobně pro poskytovatele JPA (Hibernate) příliš matoucí.
Místo toho si myslím, že musíte namapovat přidružení na User
v každém Question
, Answer
a Comment
entity. Ano, vím, že by se jednalo o duplicitní kód, ale zdá se, že jediný způsob, jak pak budete moci kvalifikovat OneToMany
mapování v User
pomocí mappedBy
odkaz.
Například vaše Question
entita by měla přidružení definované jako:
@ManyToOne(cascade = { MERGE, PERSIST }, fetch = LAZY)
@JoinColumn(name = "ua_user_id")
private User questionUser;
V závislosti na tom, jak chytře (či ne) Hibernate je ohledně výše uvedeného přidružení, možná budete muset zadat table="USER_ACTIVITY"
v JoinColumn
anotace.
Poté User
by měl OneToMany jako:
@OneToMany(mappedBy="questionUser", cascade = REMOVE)
private List<Question> questions = new ArrayList<>();
Podobně pro každou z Answer
a Comment
.
Samozřejmě jsem to nezkoušel, takže se mohu mýlit.