Hi John, I'm not sure what third-party library/application you are using, but I wonder if maybe you should be using a separate ObjectContext for your inserted/deleted objects so you don't have to jump through such hoops?
mrg On Wed, Jul 13, 2011 at 12:14 PM, Kuhns, John <[email protected]> wrote: > I've come across a situation where I need to short-circuit all database > writes and deletes for a third-party application. I am using Cayenne 3.0. On > the prePersist and preUpdate callbacks, the data object state is set to > modified or new, so I can flip it to committed and call the library methods > for persisting the data. For preDelete, the state is committed and doesn't > flip to deleted until after the callback. I can and have worked around this, > but was wondering why the discrepancy exists. > > The only thing I can think of is that the data object content is emptied upon > deletion so the values wouldn't be available in the preDelete callback. If > there is some method of cancelling the delete within a prePersist callback > I'd like to know about it. If not, I think this is a necessary addition to > the framework. Maybe a this.getObjectContext().pendingDeletedObjects() that > can be manipulated to remove an object from the list and short-circuit the > delete? > > Thanks, > John >
