Ich habe zwei Tabellen: patient_data
und patient_diagnosis
Hibernate Mapping - Join von zwei Tabelle einer flachen Klasse
Patient_data
persönliche Daten des Patienten enthält wie: pid (pkey)
, gender
, birth_date
patient_diagnosis
die Diagnosedaten der enthält registrierte Patienten. Es hat Felder wie: record_id (pkey)
, pid (fkey to patient_data(pid))
, diagnosis_date
und andere verwandte Felder.
Nun möchte ich diese beiden Tabellen auf pid
verbinden und alle diese Felder in einem einzigen Objekttyp haben. Hier
ist die Zuordnungsdatei:
<hibernate-mapping>
<class catalog="emr" name="in.Models.Emr" table="patient_diagnosis">
<id name="recordid" type="long">
<column name="record_id"/>
</id>
<property name="diagnosisDate" type="timestamp">
<column length="19" name="diagnosis_date" not-null="true"/>
</property>
<property name="snomedTermPrimary" type="long">
<column name="snomed_term_primary" not-null="true" />
</property>
<property name="snomedTermSecondary" type="string">
<column name="snomed_term_secondary" />
</property>
<property name="episodeNo" type="long">
<column name="episode_no" not-null="true" />
</property>
<property name="pid" type="long">
<column name="pid" not-null="true" />
</property>
<join table="patient_data">
<key column="pid"/>
<property name="gender" type="string">
<column name="gender" not-null="true"/>
</property>
<property name="birthDate" type="timestamp">
<column length="19" name="birth_date" not-null="true"/>
</property>
</join>
</class>
</hibernate-mapping>
Aber die Verbindung trifft auf patient_diagnosis.record_id = patient_data.pid
anstelle von patient_diagnosis.pid = patient_data.pid
d.h. HQL trifft auf Primärschlüssel der ersten Tabelle mit der genannten zweiten Spalte aus Tabelle.
Bitte geben Sie die Lösung an, damit die Verbindung auf der erwähnten Spalte von der ersten mit der erwähnten Spalte aus der zweiten Tabelle angewendet werden kann. Oder gibt es einen anderen Ausweg?
Bitte beachten Sie, dass, wenn ich keine Klassen für patient_data
oder patient_diagnosis
erstellen. Aber, nur Emr
Klasse mit einer Kombination von Feldern dieser Tabellen erstellt wird.
Warum trennen Sie sie nicht in zwei xmls. –