Oracle
 sql >> Database >  >> RDS >> Oracle

Ibernazione Mappatura di due tabelle su una classe

Per mappare una singola classe su due (o più) tabelle separate è necessario utilizzare un @TabellaSecondaria annotazione:

@Table(name="ROOMS")
@SecondaryTable(name="TRAINERS", pkJoinColumns={
    @PrimaryKeyJoinColumn(name="TRSC_OOC_UNIT_ID", referencedColumnName="OOC_UNIT_ID"),
    @PrimaryKeyJoinColumn(name="TRSC_OOC_START_DT", referencedColumnName="OOC_START_DT"),
    @PrimaryKeyJoinColumn(name="TRSC_OOC_START_TM", referencedColumnName="OOC_START_TM")
})
public class MyMergedEntity {

Dovrai quindi annotare ogni singola proprietà mappata su TRAINERS tabella con @Column(table="TRAINERS") per specificare a quale tabella appartiene. Se invece stai usando le mappature XML, tutto quanto sopra può essere fatto tramite unisciti elemento.

Detto questo, mi sembra che i tuoi due tavoli siano di natura piuttosto diversa e non dovrebbero essere mappati su una singola classe (soprattutto perché hai detto di aver già mappato ROOMS altrove). Forse dovresti mappare il tuo Trainer come ManyToOne associazione invece.