http://blogs.hibernatingrhinos.com/nhibernate/archive/2008/04/08/soft-deletes.aspx
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
-~----------~----~----~----~------~----~------~--~---