Dos cosas:
- Me refería obviamente a "table-per-subclass"
- Acabo de probarlo y usando MySQL ocurre lo mismo... (era de esperar)

Francisco A. Lozano



On Tue, Sep 15, 2009 at 00:39, Francisco A. Lozano <[email protected]> wrote:
> Hola a todos,
>
> Estoy usando SchemaExport para generar el DDL de un mapping, y está
> sucediéndome algo que a mi me parece bastante extraño:
>
> Hay mapeada una herencia desde la clase Subject a otras llamadas
> StatusUpdate, Place, Brand y alguna otra mas. Estoy usando un table
> per concrete subclass.
>
> Subject tiene una many-to-one a otra clase llamada User.
>
> El caso es que en el DDL, se generan columnas "user" (entiendo que
> sería la FK a user.id segun el namingstrategy) no sólo en Subject
> (como era de esperar) sino también en StatusUpdate y en Place (y en
> otras que no he pegado). Sin embargo, en Brand no se genera.
>
> Este es el DDL que se genera para las 3 tablas con SQLite (no es el
> script original, es el resultado de volcarlo con sqlite):
> /* DDL information for - subject */
> -----------------------------------
> CREATE TABLE "subject" ("id" INTEGER not null, "modified_at" DATETIME
> not null, "created_at" DATETIME not null, "user" INTEGER not null,
> primary key ("id"))
> /* DDL information for - brand */
> ---------------------------------
> CREATE TABLE "brand" ("id" INTEGER not null, "name" TEXT, primary key ("id"))
> /* DDL information for - place */
> ---------------------------------
> CREATE TABLE "place" ("id" INTEGER not null, "name" TEXT, "street"
> TEXT not null, "number" TEXT, "floor_and_others" TEXT, "zip_code"
> TEXT, "city" INTEGER not null, "place_type" INTEGER, "user" INTEGER,
> primary key ("id"))
>
> Y este el mapping:
>
>    <class name="MyApp.Core.Subject, MyApp">
>        <id name="Id">
>            <generator class="hilo" />
>        </id>
>        <timestamp name="ModifiedAt" />
>        <property name="CreatedAt" not-null="true" />
>        <many-to-one name="User" not-null="true" />
>
>        <bag name="Comments" inverse="true" lazy="true"
> cascade="all-delete-orphan" order-by="CreatedAt">
>            <key column="subject" />
>            <one-to-many class="MyApp.Core.Comment, MyApp"/>
>        </bag>
>
>        <joined-subclass name="MyApp.Users.StatusUpdate, MyApp">
>            <key column="id" />
>            <property name="UpdateInfo" not-null="true" type="StringClob"/>
>            <joined-subclass name="MyApp.Geo.Visit, W.Domain">
>                <key column="id" />
>
>                <property name="ScheduledAt" not-null="false"/>
>                <many-to-one name="Place" not-null="true" />
>
>            </joined-subclass>
>        </joined-subclass>
>
>        <joined-subclass name="MyApp.Geo.Place, MyApp">
>            <key column="id" />
>
>            <property name="Name" />
>
>            <bag name="Visits" inverse="true" lazy="true"
> cascade="all-delete-orphan">
>                <key column="place" />
>                <one-to-many class="MyApp.Geo.Visit, MyApp"/>
>            </bag>
>
>            <component name="PostalAddressInformation">
>                <property name="Street" not-null="true" />
>                <property name="Number" />
>                <property name="FloorAndOthers" />
>                <property name="ZipCode" />
>                <many-to-one name="City" not-null="true" />
>            </component>
>            <many-to-one name="PlaceType" />
>        </joined-subclass>
>
>        <joined-subclass name="MyApp.Brands.Brand, MyApp">
>            <key column="id" />
>
>            <property name="Name" length="250" not-null="false" />
>
>            <bag name="BrandTypes" lazy="false" table="brand_to_brand_type">
>                <key column="brand" />
>                <many-to-many class="MyApp.Brands.Brand, MyApp"
> column="brand_type" />
>            </bag>
>
>        </joined-subclass>
>
>    </class>
>
> ¿Alguna ayuda o posible explicación?
>
> Francisco A. Lozano
>

--~--~---------~--~----~------------~-------~--~----~
Para escribir al Grupo, hágalo a esta dirección: 
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano
-~----------~----~----~----~------~----~------~--~---

Responder a