Je ne pense pas que vous puissiez y parvenir en mappant le ManyToOne
association à User
génériquement dans UserActivity
entité. C'est probablement trop déroutant pour le fournisseur JPA (Hibernate).
Au lieu de cela, je pense que vous devez mapper l'association sur User
dans chaque de la Question
, Answer
et Comment
entités. Oui, je sais que ce serait du code dupliqué, mais il semble que la seule façon de qualifier le OneToMany
mappages dans User
en utilisant le mappedBy
référence.
Par exemple, votre Question
l'entité aurait une association définie comme :
@ManyToOne(cascade = { MERGE, PERSIST }, fetch = LAZY)
@JoinColumn(name = "ua_user_id")
private User questionUser;
En fonction de l'intelligence (ou non) d'Hibernate sur l'association ci-dessus, vous devrez peut-être spécifier le table="USER_ACTIVITY"
dans la JoinColumn
annotation.
Puis le User
aurait le OneToMany comme :
@OneToMany(mappedBy="questionUser", cascade = REMOVE)
private List<Question> questions = new ArrayList<>();
De même pour chacun des Answer
et Comment
.
Bien sûr, je n'ai pas essayé cela, donc je peux me tromper.