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