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 。
もちろん、私はこれを試したことがないので、間違っている可能性があります。