Jeg tror ikke, du kan opnå dette ved at kortlægge ManyToOne
tilknytning til User
generisk i UserActivity
enhed. Det er nok for forvirrende for JPA-udbyderen (Hibernate).
I stedet synes jeg, du skal kortlægge tilknytningen til User
i hver af Question
, Answer
og Comment
enheder. Ja, jeg ved, at det ville være duplikeret kode, men det ser ud til, at den eneste måde, du så vil være i stand til at kvalificere OneToMany
kortlægninger i User
ved hjælp af mappedBy
reference.
For eksempel dit Question
enhed ville have en tilknytning defineret som:
@ManyToOne(cascade = { MERGE, PERSIST }, fetch = LAZY)
@JoinColumn(name = "ua_user_id")
private User questionUser;
Afhængigt af hvor smart (eller ej) Hibernate er omkring ovenstående tilknytning, skal du muligvis angive table="USER_ACTIVITY"
i JoinColumn
anmærkning.
Derefter User
ville have OneToMany som:
@OneToMany(mappedBy="questionUser", cascade = REMOVE)
private List<Question> questions = new ArrayList<>();
På samme måde for hver af Answer
og Comment
.
Jeg har selvfølgelig ikke prøvet dette, så jeg kan tage fejl.