Hibernate-mapping, mehrere Klassen zu einer Tabelle mithilfe von hbm.xml

Ich bin ziemlich neu in den Ruhezustand und brauche etwas Hilfe mit hibernate-mapping.

Habe ich 4 verschiedene Klassen, die ich zuordnen möchten, in eine Tabelle, die den Primärschlüssel besteht aus Attributen, die aus 2 verschiedenen Klassen. Zur gleichen Zeit, ich möchte die Karte nur ausgewählte Attribute aus jeder Klasse in einer lokalen Datenbank. Ich möchte vermeiden, JPA Annotationen und definieren der mapping-Stil in einem hbm.xml Datei statt. Wie mache ich das?

Nehmen Sie das folgende Beispiel:

public class Tenant implements Serializable {
    private final static long serialVersionUID = 1L;
    protected List<Rack> rack;
    protected String type;
    //getters setters
}

public class Rack implements Serializable {
    private final static long serialVersionUID = 1L;        
    protected List<Circuit> circuit;
    protected String rackLabel;
    protected Boolean excludes;
    //getters setters
}

public class Circuit implements Serializable {
    private final static long serialVersionUID = 1L;
    protected List<CircuitReadings> circuitReadings;
    protected String circuitNo;
    protected Boolean excludes;
    //getters setters
}

public class CircuitReadings
    implements Serializable {
    private final static long serialVersionUID = 1L;
    protected String date;
    protected String kva;
    protected String current;
    protected String kwh;
    //getters setters
}

Und die letztendliche Tabelle sollte die folgenden Komponenten umfassen:

    type | rackLabel | circuitNo | date | kva | current | energy

"circuitNo" und "Datum" über die composite primary keys.

Kann mir jemand zeigen, ein Beispiel, wie ich das anzeigen dieses? Danke!

  • Warum fügen Sie alle vier Klassen in einer einzigen Tabelle? Aus der Art, wie Sie Aussehen, alle Klassen haben viele zu-eins-Beziehung zwischen Ihnen. Hinzufügen alle von Ihnen in einer einzigen Tabelle würde die Ausbeute eines sehr de-normalisierten Tabelle. Dies ist in der Regel eine schlechte Sache, die in relationalen Datenbanken.
  • Das ist, weil ich nicht wollen, um zu speichern alle Attribute in der Datenbank, und wollen nur ausgewählten. die Attribute, die ich will, sind in der Tabelle hervorgehoben Beschreibung oben. Meine Lösung war eine separate Methode, die eine Schleife durch den "Tenant" - Objekt und seine sub-Klassen, und konsolidieren Sie nur Werte, die ich speichern möchten, in der Datenbank in einer eigenen Klasse z.B. ClassA. Eine hbm-Datei wird dann erstellt für ClassA. Ich weiß, es ist nicht ideal, dies zu tun, daher bin ich auf der Suche nach einer optimalen Lösung.
InformationsquelleAutor louis xie | 2012-01-05
Schreibe einen Kommentar