Jag tror inte att du kan uppnå detta genom att mappa ManyToOne koppling till User generellt i UserActivity entitet. Det är förmodligen för förvirrande för JPA-leverantören (Hibernate).
Istället tror jag att du måste mappa kopplingen till User i varje av Question , Answer och Comment enheter. Ja, jag vet att det skulle vara dubblerad kod, men det verkar som det enda sättet du då kommer att kunna kvalificera OneToMany mappningar i User med hjälp av mappedBy referens.
Till exempel din Question enheten skulle ha en association definierad som:
@ManyToOne(cascade = { MERGE, PERSIST }, fetch = LAZY)
@JoinColumn(name = "ua_user_id")
private User questionUser;
Beroende på hur smart (eller inte) Hibernate är med ovanstående koppling, kan du behöva ange table="USER_ACTIVITY" i JoinColumn anteckning.
Sedan User skulle ha OneToMany som:
@OneToMany(mappedBy="questionUser", cascade = REMOVE)
private List<Question> questions = new ArrayList<>();
Likadant för var och en av Answer och Comment .
Naturligtvis har jag inte provat detta, så jag kan ha fel.