The other option would be to have a different sproc that instead of copying out certain tables that are marked as "delete" it just deletes them...
On Thu, Sep 11, 2008 at 3:53 AM, Patrick De Boeck <[EMAIL PROTECTED]>wrote: > > I completely agree with you. > > However the company I am working with currently has a more data driven > approach where that database is god and everything should be written > to conform the database. Not the otherway around. Thus they think > certain tables are more important than others and these tables should > be versioned. > > Will try to handle this in my repository to manually delete the 'non > versionable' collections! > > On 11 sep, 10:57, "Ken Egozi" <[EMAIL PROTECTED]> wrote: > > well I think that for the sake of versioning, you should soft-delete the > > cascaded lines also (and have the DBA'd trigger populate the history > table > > using the linked orderlines or whatever). that's for history data etc. > > so, a whole aggregate should either be versionable or not > > > > On Thu, Sep 11, 2008 at 11:36 AM, Patrick De Boeck <[EMAIL PROTECTED] > >wrote: > > > > > > > > > > > > > Is it possible to know during the update or save listener that > > > attached object it belongs to and then check if it is Versionable > > > (thus stopping it here from re-inserting) > > > > > On 10 sep, 23:41, Patrick De Boeck <[EMAIL PROTECTED]> wrote: > > > > yep. Can't find any refernce on this. > > > > > > I was thinking about a generic way of removing all objects from my > > > > versionable object and thus avoiding problems but I cannot find a > > > > clean way to achieve that at the moment! > > > > > > On 10 sep, 22:54, "Will Shaver" <[EMAIL PROTECTED]> wrote: > > > > > > > So you only want some of your entities to be marked as deleted and > you > > > want > > > > > other entities to actually delete? > > > > > > > On Wed, Sep 10, 2008 at 1:36 PM, Patrick De Boeck < > [EMAIL PROTECTED] > > > >wrote: > > > > > > > > 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? > > > > -- > > Ken Egozi. > http://www.kenegozi.com/bloghttp://www.musicglue.comhttp://www.castleproject.orghttp://www.gotfriends.co.il > > > --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
