Не мисля, че можете да постигнете това чрез картографиране на 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
.
Разбира се, не съм пробвал това, така че може да греша.