Eu não acho que você pode conseguir isso mapeando o
ManyToOne associação a User genericamente na UserActivity entidade. Isso provavelmente é muito confuso para o provedor JPA (Hibernate). Em vez disso, acho que você precisa mapear a associação para
User em cada da Question , Answer e Comment entidades. Sim, eu sei que seria um código duplicado, mas parece que a única maneira de qualificar o OneToMany mapeamentos em User usando o mappedBy referência. Por exemplo, sua
Question entidade teria uma associação definida como:@ManyToOne(cascade = { MERGE, PERSIST }, fetch = LAZY)
@JoinColumn(name = "ua_user_id")
private User questionUser;
Dependendo de quão inteligente (ou não) o Hibernate é sobre a associação acima, você pode precisar especificar o
table="USER_ACTIVITY" na JoinColumn anotação. Em seguida, o
User teria o OneToMany como:@OneToMany(mappedBy="questionUser", cascade = REMOVE)
private List<Question> questions = new ArrayList<>();
Da mesma forma para cada
Answer e Comment . Claro, eu não tentei isso, então posso estar errado.