Betrachten Sie diese zwei Klassen, die derselben Tabelle zugeordnet sind. Einer ist readonly via veränderbar = "falsch".Zwei Klassen, die derselben Tabelle zugeordnet sind (eine readonly), müssen in der richtigen Reihenfolge sein?
<class name="Funder" table="funder">
<id name="id">
<generator class="identity" />
</id>
<property name="funder_name" />
<property name="contact_name" />
<property name="addr_line_1" />
<property name="addr_line_2" />
<property name="addr_line_3" />
<property name="city" />
<many-to-one name="state" column="state_id" foreign-key="FK_funder_state_id" fetch="join" />
<property name="zip_code" length="10" />
<property name="phone_number" length="30" />
<property name="create_dt" update="false" not-null="true" />
<many-to-one name="create_by" column="create_by" not-null="true" update="false" foreign-key="FK_funder_create_by" fetch="join" />
<property name="last_update_dt" insert="false" />
<many-to-one name="last_update_by" insert="false" foreign-key="FK_funder_last_update_by" fetch="join" />
</class>
<class name="FunderSimple" table="funder" schema-action="none" mutable="false">
<id name="id">
<generator class="identity" />
</id>
<property name="funder_name" />
<property name="contact_name" />
<property name="phone_number" />
</class>
Wenn ich die FunderSimple Mapping vor dem Funder Mapping mein Schema bewegt sich nicht korrekt erzeugen. Wenn ich es so belasse, wie es oben ist, funktioniert es.
Ist das von Entwurf? Es scheint, als ob die Schema-Aktion = "none" beim Tabellenname bleibt und spätere Mappings in derselben Tabelle das Schema nicht erzeugen.
Ich mache es so, weil ich eine andere Klasse namens Contract habe, die einen Fremdschlüssel für die Geldgebertabelle hat. Ich brauche jedoch nicht alle Geldspenderspalten, wenn ich vom Vertragsobjekt referenziere.
<many-to-one name="funder_simple" column="funder_id" foreign-key="FK_contract_funder_id" fetch="join" />
Funder erbt nicht von FunderSimple.
Soll ich eine andere Technik verwendet nur eine Teilmenge von Spalten aus einer Fremdschlüsseltabelle zu holen? Ist die Eins-zu-eins-Methode die einzige Möglichkeit, einen Fremdschlüssel einzurichten?
Version mit 2.1.0.4000
interessant ... Aber wie funktioniert das aus der Perspektive Contract-Mapping:
Dies wird so gemacht. Würde ich das Many-to-One-Objekt zurück in das schwere Funder-Objekt ändern und irgendwie zuordnen, dass nur ein FunderSimple geladen wird? – dotjoe
Der Vertrag sollte eine Beziehung zu 'Funder' haben, da 'Funder' Ihre Entität ist. Ich sehe FunderSimple nur als irgendeine Art von Helfer/Container, um eine Liste von 'Funder' anzuzeigen, wo Sie nicht die vollständige Funder-Entität haben müssen. Warum möchten Sie "FunderSimple" -Instanzen abrufen, wenn Sie eine Vertragsinstanz abrufen? –
Ziemlich viel, so muß ich das nicht komme alle von dem Funder des nicht benötigte Fremdschlüssel wie die create_by und last_update_by Schlüssel zu einer Personal-Tabelle ... was wiederum zu mehr für ein paar Tasten in der Personal Tisch verbindet. Die FunderSimple Felder sind die einzigen, die ich brauche, soweit der Vertrag betroffen ist. Ich bezweifle, dass es die Leistung beeinträchtigen würde, all diese unnötigen Tische jedes Mal zu betreten, wenn ich einen Vertrag erhalte. Aber ich hatte nur gehofft, dass es einen Weg gibt, um das zu umgehen und nur das abzufragen, was ich brauche. – dotjoe