Ik denk niet dat je dit kunt bereiken door de ManyToOne
koppeling aan User
algemeen in de UserActivity
entiteit. Dat is waarschijnlijk te verwarrend voor de PPV-provider (Hibernate).
In plaats daarvan denk ik dat je de koppeling moet toewijzen aan User
in elke van de Question
, Answer
en Comment
entiteiten. Ja, ik weet dat dat gedupliceerde code zou zijn, maar het lijkt erop dat de enige manier waarop u dan de OneToMany
kunt kwalificeren toewijzingen in User
met behulp van de mappedBy
referentie.
Bijvoorbeeld uw Question
entiteit zou een associatie hebben die is gedefinieerd als:
@ManyToOne(cascade = { MERGE, PERSIST }, fetch = LAZY)
@JoinColumn(name = "ua_user_id")
private User questionUser;
Afhankelijk van hoe slim (of niet) Hibernate is over de bovenstaande associatie, moet je mogelijk de table="USER_ACTIVITY"
specificeren in de JoinColumn
annotatie.
Dan de User
zou de OneToMany hebben als:
@OneToMany(mappedBy="questionUser", cascade = REMOVE)
private List<Question> questions = new ArrayList<>();
Hetzelfde geldt voor elk van Answer
en Comment
.
Ik heb dit natuurlijk niet geprobeerd, dus ik kan het mis hebben.