Hola,

Agrego información. Para poder grabar, he tenido que grabar primero B
y luego A. Y se me graba todo bien de esta forma, pero me gustaría
saber si existe la posibilidad de que grabando A se grabara todo.

Por otro lado, en la relación comentada, está además una relación de B
con C 1 a n. Al ejecutar el Save, me hace lo siguiente:

INSERT INTO B (altres_ajuts, data_final, data_inicial, descripcio,
import_solicitat, import_total, lloc, nom, primera_participacio,
id_general, id_exped_fires) VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6,
@p7, @p8, @p9, @p10);@p0 = 'S', @p1 = 10/05/2010 0:00:00, @p2 =
10/05/2010 0:00:00, @p3 = 'xngfd', @p4 = 1000, @p5 = 2000, @p6 =
'svcasdcdsac', @p7 = 'ascvscvsda', @p8 = 'S', @p9 = 113, @p10 = 141

INSERT INTO C (import_rebut, import_solicitat, nom, tipus,
id_exped_fires, id_altres_sub) VALUES (@p0, @p1, @p2, @p3, @p4,
@p5);@p0 = 800, @p1 = 1500, @p2 = 'dddd', @p3 = 'PB', @p4 = 141, @p5 =
150

UPDATE C SET id_exped_fires = @p0 WHERE id_altres_sub = @p1;@p0 = 141,
@p1 = 150

Los dos inserts primeros son correctos. Me crea B y luego me crea C
con una relación con B. Lo que no entiendo es porqué después me hace
un update....

En mapeo de la entidad B con C es el siguiente:

   <set name="C" cascade="save-update" lazy="true" batch-size="20"
access="field.pascalcase-underscore">
      <key column="id_exped_fires" />
      <one-to-many class="C" />
    </set>

Y de C con B es este:

    <many-to-one name="C" class="C" column="id_exped_fires" not-
null="true" />

¿Tiene que ver con cascade="save-update"? Debería ser cascade="all"?

Gracias de nuevo


On 11 jun, 11:55, Juan Cuello <[email protected]> wrote:
> No, es many-to-one. Las relaciones one.to.one se hacen así a mi
> entender y según un artículo a Ayende...
>
> On 11 jun, 10:24, Gustavo Ringel <[email protected]> wrote:
>
>
>
> > Si B puede tener many A entonces A tiene una lista de B no un solo B (a mi
> > entender)
>
> > Gustavo.
>
> > 2010/6/11 Juan Cuello <[email protected]>
>
> > > Hola buenas,
>
> > > Tengo una duda sobre un mapeo que he hecho. Resulta que tengo 2
> > > entidades: A y B
>
> > > La entidad B tiene una FK a la entidad A, pero quiero que B sea
> > > accesible desde A (mediante una propiedad).
>
> > > He creado para este caso una relación one-to-one de la siguiente
> > > forma:
>
> > > En A:
> > > <one-to-one name="B" class="B" access="field.pascalcase-underscore"
> > > property-ref="PropiedadA" />
>
> > > En B:
>
> > >  <many-to-one access="field.pascalcase-underscore" name="PropiedadA"
> > > class="A" column="FK_A" not-null="true" unique="true"/>
>
> > > En bbdd, TablaB tiene una FK a TablaA
>
> > > Cuando quiero grabar (Save) la entidad A, quisiera que se me grabara
> > > también la entidad B (en cascada), pero no lo hace. En cambio, cuando
> > > cargo la entidad A, sí que me carga la entidad B.
>
> > > Ambas entidades tienen una propiedad que referencian la otra...
>
> > > Help please,
>
> > > Muchas gracias como siempre
>
> > > --
> > > Para escribir al Grupo, hágalo a esta dirección:
> > > [email protected]
> > > Para más, visite:http://groups.google.com/group/NHibernate-Hispano

-- 
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