Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Hibernate Mapping von zwei Tabellen auf eine Klasse

Um eine einzelne Klasse zwei (oder mehr) separaten Tabellen zuzuordnen, müssen Sie einen @SecondaryTable Anmerkung:

@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 {

Anschließend müssen Sie jede einzelne Eigenschaft, die TRAINERS zugeordnet ist, mit Anmerkungen versehen Tabelle mit @Column(table="TRAINERS") um anzugeben, zu welcher Tabelle es gehört. Wenn Sie stattdessen XML-Mappings verwenden, können alle oben genannten Schritte über beitreten Element.

Alles in allem scheint es mir, dass Ihre beiden Tabellen ziemlich unterschiedlicher Natur sind und nicht einer einzigen Klasse zugeordnet werden sollten (insbesondere, da Sie gesagt haben, dass Sie bereits ROOMS zugeordnet haben anderswo). Vielleicht sollten Sie Ihren Trainer als ManyToOne Assoziation statt.