sql >> Base de Datos >  >> RDS >> Oracle

Hibernate mapeando dos tablas a una clase

Para asignar una sola clase a dos (o más) tablas separadas, debe usar un @SecondaryTable anotación:

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

A continuación, deberá anotar cada propiedad individual asignada a TRAINERS tabla con @Column(table="TRAINERS") para especificar a qué tabla pertenece. Si está utilizando asignaciones XML, todo lo anterior se puede hacer a través de unirse elemento.

Dicho todo esto, me parece que sus dos tablas son de naturaleza bastante diferente y no deben asignarse a una sola clase (especialmente porque ha dicho que ya ha asignado ROOMS en otra parte). Tal vez debería mapear su Entrenador como ManyToOne asociación en su lugar.