Ich glaube nicht, dass Sie dies erreichen können, indem Sie ManyToOne
zuordnen Zuordnung zu User
generisch in der UserActivity
Einheit. Das ist wahrscheinlich zu verwirrend für den JPA-Anbieter (Hibernate).
Stattdessen denke ich, dass Sie die Zuordnung User
zuordnen müssen in jedem der Question
, Answer
und Comment
Entitäten. Ja, ich weiß, das wäre doppelter Code, aber es sieht so aus, als ob Sie dann nur so in der Lage sein werden, den OneToMany
zu qualifizieren Zuordnungen in User
mit mappedBy
Referenz.
Zum Beispiel Ihre Question
Entität hätte eine Assoziation, die wie folgt definiert ist:
@ManyToOne(cascade = { MERGE, PERSIST }, fetch = LAZY)
@JoinColumn(name = "ua_user_id")
private User questionUser;
Je nachdem, wie schlau (oder nicht) Hibernate mit der obigen Assoziation umgeht, müssen Sie möglicherweise die table="USER_ACTIVITY"
angeben in der JoinColumn
Anmerkung.
Dann der User
hätte das OneToMany als:
@OneToMany(mappedBy="questionUser", cascade = REMOVE)
private List<Question> questions = new ArrayList<>();
Ähnlich für jede Answer
und Comment
.
Natürlich habe ich das nicht ausprobiert, also könnte ich mich irren.