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à:

  1. aggiungere l'annotazione @Inheritance(stretegy=InheritanceStrategy.SINGLE_TABLE) sul Super
  2. aggiungere l'annotazione @DiscriminatorColumn (e impostando il suo attributi name e discriminatorType) (di nuovo sul Super)
  3. su ogni sottoclasse extend il Super, 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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top