Considérons ces deux classes mappées à la même table. L'un est readonly via mutable = "false".Deux classes mappées à la même table (une en lecture seule) doivent être dans le bon ordre?
<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>
Si je déplace la cartographie FunderSimple avant la cartographie Funder mon schéma ne pas correctement générer. Si je le laisse comme ci-dessus, cela fonctionne.
Est-ce intentionnel? Il semble que schema-action = "none" colle au nom_table et que les mappages ultérieurs à la même table ne génèreront pas le schéma. Je le fais comme ça parce que j'ai une autre classe nommée Contract qui a une clé étrangère à la table des bailleurs de fonds. Cependant, je n'ai pas besoin de toutes les colonnes des bailleurs de fonds lors du référencement de l'objet contrat.
<many-to-one name="funder_simple" column="funder_id" foreign-key="FK_contract_funder_id" fetch="join" />
Le programme de financement n'hérite pas de FunderSimple.
Dois-je utiliser une technique différente pour extraire uniquement un sous-ensemble de colonnes d'une table de clé étrangère? Est-ce que plusieurs-à-un est le seul moyen de configurer une clé étrangère?
en utilisant la version 2.1.0.4000
intéressant ... Mais, comment cela fonctionne-t du point de vue de la cartographie du contrat. Est-ce que je changerais le many-to-one en un lourd objet Funder et le mapperais en quelque sorte pour charger seulement un FunderSimple? – dotjoe
Le contrat doit avoir une relation avec 'Bonds', puisque 'Bailleur' est votre entité. Je ne vois que FunderSimple comme une sorte d'aide/conteneur afin d'afficher une liste de «bailleurs de fonds», où vous n'avez pas besoin d'avoir l'entité Fullder blown. Pourquoi voudriez-vous récupérer les instances de 'FunderSimple' lorsque vous récupérez une instance de contrat? –
Je n'ai pas besoin de joindre toutes les clés étrangères inutiles du Bailleur, telles que les clés create_by et last_update_by d'une table Staff ... ce qui entraîne à son tour plus de jointures pour quelques clés dans la table Staff. Les champs FunderSimple sont les seuls dont j'ai besoin en ce qui concerne le contrat. Je doute que cela nuirait à la performance de rejoindre toutes ces tables inutiles chaque fois que je vais chercher un contrat. Mais, j'espérais juste qu'il y avait un moyen de contourner cela et d'interroger seulement ce dont j'avais besoin. – dotjoe