I have seen that example, but if I take that case as an example then
my order would be softdeletable, but the orderline would not!

Thus when I remove my order that will be set to "IsDeleted = true",
while my orderlines would actually be deleted immediately!

This leads to resaving a deleted orderline !


On 10 sep, 18:37, "Will Shaver" <[EMAIL PROTECTED]> wrote:
> http://blogs.hibernatingrhinos.com/nhibernate/archive/2008/04/08/soft...
>
> There is also some code in the NHibernate Contrib project under
> NHibernate.Burrow.Appblock.SoftDelete that you can review or use.
>
>  -Will
>
> On Wed, Sep 10, 2008 at 4:06 AM, Patrick De Boeck <[EMAIL PROTECTED]>wrote:
>
>
>
> > Hi All,
>
> > I have the following situation:  A domain model which has various
> > classes that all map to one or more tables in a DB2 database.  For
> > keeping track of versioning our dba guys have written a trigger that
> > will copy the entire table record into a seperate 'history' version
> > table.
>
> > No worries untill they figured out that with this approach it would be
> > impossible to track who actually deleted an item.  So they went a step
> > further and made deletes forbidden.  Now we would have to update the
> > record and set the a field to '+DELETE+'.  A trigger will then run
> > afterwards and copy the 'deleted' version to the history and then
> > fysically delete the row.
>
> > So far the intro.  I have made an interface IVersionable (because not
> > all domain objects require this approach) and have written a
> > IVersionableDeleteEventListener that will do the following:
>
> > if (entity is IVersionable)
> > {
> >       IVersionable versionable = (IVersionable)entity;
> >       versionable.CreatedBy = "+DELETE+";
> >       versionable.LastModification = DateTime.Now;
> >       versionable.LastModifiedBy =
> > UserContextHelper.GetUserPrincipal();
>
> >       CascadeBeforeDelete(session, persister, entity, entityEntry,
> > transientEntities);
> >       CascadeAfterDelete(session, persister, entity,
> > transientEntities);
> > }
> > else
> > {
> >       base.DeleteEntity(session, entity, entityEntry,
> > isCascadeDeleteEnabled,
> >                                  persister, transientEntities);
> > }
>
> > This now conflicts with my cascading rules I have set for this
> > object.  I receive the following error: "deleted object would be re-
> > saved by cascade"
>
> > The problem lies in the fact that A has a collection of B.  A is
> > Versionable while B is not.  Thus B should be deleted and A should be
> > marked for deletion.  The cascading options set on A try the re-save B
> > which results in the above error.
>
> > Does anyone have had the same problem and how have you then solved
> > this?
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/nhusers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to