sql >> Databasteknik >  >> RDS >> Oracle

Hibernate Mappa två tabeller till en klass

För att mappa en enskild klass till två (eller flera) separata tabeller måste du använda en @SecondaryTable anteckning:

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

Du måste sedan kommentera varje enskild egenskap som mappas till TRAINERS tabell med @Column(table="TRAINERS") för att ange vilken tabell den tillhör. Om du istället använder XML-mappningar kan allt ovanstående göras via gå med element.

Allt som sagt, det verkar för mig som att dina två tabeller är ganska olika till sin natur och inte bör mappas till en enda klass (speciellt eftersom du har sagt att du redan har mappat ROOMS någon annanstans). Du kanske borde mappa din tränare som ManyToOne förening istället.



  1. många-till-många-relation i doktrin

  2. Hur FROM_BASE64()-funktionen fungerar i MySQL

  3. ECONNREFUSED för Postgres på nodeJS med dockare

  4. Laravel SQLSTATE[22007]:Ogiltigt datetime-format:1292 Felaktigt datetime-värde:'2019-03-10 02:00:39' för kolumnen 'updated_at' (sommartid?)