Hmm, that's very strange. Now the double deletion isn't happening. I don't think I changed anything relevant but I can't make it happen now. Oh well, never mind.
On Thu, Apr 15, 2010 at 12:32 PM, Bryan Lewis <[email protected]> wrote: > I have an entity Quote with a to-many relationship to QuoteCountry, and a > cascade delete rule. When I delete a quote object, Cayenne attempts to > delete the QuoteCountry objects twice, I suspect because I also have a > flattened relationship quote.countries (Quote -> QuoteCountry -> Country). > > I was googling for previous reports of this and found none, but I did come > across an old copy of Cayenne's DataContext.java that explicitly checked for > deleting twice in the presence of a flattened relationship. > > Normally this double deletion might not be noticed, but it throws an > OptimisticLockException if optimistic locking is enabled on the Quote > entity. My current work-around is to disable OL on this entity only, which > isn't a bad work-around for me. BatchAction does: > > int updated = statement.executeUpdate(); > if (useOptimisticLock && updated != 1) { > //... > throw new OptimisticLockException(...); > >
