Hola gente!

Yo iria por la solucion mas simple, tener un autonumerico o un Guid.

Pero si se te va la vida en no querer incrementar un numero, y estas en la
misma trasaccion:
- En vez de borrar el objeto, lo pondria en una lista tuya de "ABorrar"
- Si generas uno nuevo, tomas el objeto de esa lista, lo retiras, y lo
actualizas como siempre
- Antes de hacer flush, recorres los objetos que quedaron en la lista
"ABorrar" y los borras

Pero no veo por que no usar un autonumero o un Guid

Nos leemos!

Angel "Java" Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

2011/12/21 Marcos Mellibovsky <[email protected]>

> 1) seguro no te sirve ni un int64? no estaras pensando que tenes tanta sed
> que no te alcanzara el agua de todo el oceano?.
>
>
> 2011/12/21 [email protected] <[email protected]>
>
> 1. Guid
>> 2. ¿no era que se eliminaba y se creaba en la misma transacción?
>> 3. ¿por?
>>
>> 2011/12/21 BlackCid <[email protected]>:
>> > 1- El tema es que es algo muy dinámico (crear, borrar, crear), tanto
>> > que no me gustaría poner un id que no parase de incrementarse hasta
>> > vete tu a saber que numero (es dificil que superase el máximio, pero
>> > quien sabe xD)
>> > 2- El problema es que por un lado se elimina, y tal vez, solo tal
>> > vez,
>> > al cierto tiempo se crea de nuevo, eso depende del usuario y es
>> > imposible saberlo antes de eliminarlo.
>> > 3- Esto me es imposible.
>> >
>> > He probado con SaveOrUpdate pero claro, tras esto lo borra.
>> > Habia pensado en probar SaveOrUpdate y en lugar de borrar la entidad
>> > primero dejarla coja y poner que haga delete all orphans (de esta
>> > manera si queda coja en el flush lo borrará). El problema es que las
>> > claves extranjeras son clave primaria...
>> >
>> > On 20 dic, 13:33, "[email protected]" <[email protected]>
>> > wrote:
>> >> Se me ocurren tres opciones, de seguro hay mas...
>> >>
>> >> 1. Usar Id que no sean significativos al usuario así podés usar
>> distintos Ids.
>> >> 2. Hacer un get y un update del objeto que querés actualizar
>> >> 3. Hacer un session.flush entre el delete y el save
>> >>
>> >> saludos.
>> >> nelo
>> >>
>> >> 2011/12/20 BlackCid <[email protected]>:
>> >>
>> >>
>> >>
>> >> > Resulta que si borro una entrada, y luego creo otra con el mismo id,
>> >> > al hacer flush me dice que no puede insertarse porque ya existe.
>> >>
>> >> > Está claro que primero intenta insertar y luego borrar.
>> >>
>> >> > ¿Existe alguna forma de evitar este error?
>> >>
>> >> > Gracias de antemano.
>> >>
>> >> > --
>> >> > Para escribir al Grupo, hágalo a esta dirección:
>> [email protected]
>> >> > Para más, 
>> >> > visite:http://groups.google.com/group/NHibernate-Hispano-Ocultar texto 
>> >> > de la cita -
>> >>
>> >> - Mostrar texto de la cita -
>> >
>> > --
>> > 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
>>
>
>
>
> --
>
> Ing. Marcos Mellibovsky
> ARSoft Consultoría Informática
> [email protected]
> 0351 155630801
> msn:[email protected]
>
>  --
> 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