Oracle
 sql >> Base de données >  >> RDS >> Oracle

Hibernate mappe deux tables à une classe

Pour mapper une seule classe à deux (ou plusieurs) tables distinctes, vous devez utiliser un @SecondaryTable annotation :

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

Vous devrez ensuite annoter chaque propriété individuelle associée à TRAINERS tableau avec @Column(table="TRAINERS") pour spécifier à quelle table il appartient. Si vous utilisez des mappages XML à la place, tout ce qui précède peut être fait via joindre élément.

Cela dit, il me semble que vos deux tables sont de nature assez différente et ne devraient pas être mappées à une seule classe (d'autant plus que vous avez dit que vous avez déjà mappé ROOMS autre part). Peut-être devriez-vous mapper votre formateur en tant que ManyToOne association à la place.