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.