Hibernate: Come posso aderire a 2 classi in una tabella?
Domanda
Quindi, io sono abbastanza nuovo per Hibernate e ho un problema.
Ho una classe astratta (il super-classe, di classe Super), e 5 sottoclassi che dovrebbero utilizzare le proprietà dalla classe Super e aggiungere una nuova proprietà (una nuova colonna)
Quindi, come posso fare questo? Devo estendere la classe Super da Java, o è sufficiente per unire le classi utilizzando un'annotazione JPA.
Ecco il secondo problema. Come posso avere 1 tavolo per 2 classi. Qualcuno (più intelligente di me) mi ha detto di usare il @JoinTable , ma la mia forma ricerche con Google, penso che ho bisogno di usare @Inheritance (strategia = InheritanceStrategy.JOINED)
È possibile utilizzare il @JoinTable troppo?
Nessuna soluzione corretta
Altri suggerimenti
Il tuo è un caso di eredità:
- aggiungere l'annotazione
@Inheritance(stretegy=InheritanceStrategy.SINGLE_TABLE)
sulSuper
- aggiungere l'annotazione
@DiscriminatorColumn
(e impostando il suo attributiname
ediscriminatorType
) (di nuovo sulSuper
) - su ogni sottoclasse
extend
ilSuper
, e aggiungere il@DiscriminatorValue
annotazioni, con valore diverso per ciascuna delle sottoclassi.
Se sei un nuovo Hibernate, si dovrebbe leggere il suo . Strategie di ereditarietà sono spiegate qui e utilizzando le annotazioni di esprimere strategia di ereditarietà è spiegato qui