[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
| 
Re: [eclipselink-users] [ClassName] cannot be merged because it has	changed or been deleted since it was last read
 | 
Turns out this was my mistake. I was trying to merge() a non-persistent
object.
This brings up the question, is there a method that takes in an Entity and
calls persist() if it's non-persistent and merge() if it is? Sort of like
Hibernate's Session.saveOrUpdate() method.
Thanks,
Gili
cowwoc wrote:
> 
> Hi,
> 
> I retrieve an Entity from the DB, modify it then invoke
> EntityManager.merge() on it. For some reason EclipseLink throws this
> exception:
> 
> javax.persistence.OptimisticLockException: Exception [EclipseLink-5010]
> (Eclipse Persistence Services - 1.0 (Build 1.0 - 20080707)):
> org.eclipse.persistence.exceptions.OptimisticLockException
> Exception Description: The object [Object.toString() goes here] cannot be
> merged because it has changed or been deleted since it was last read.
> {3}Class> [className goes here]
> 
> I'm confused. Isn't the entire point of EntityManager.merge() to push
> changes from the in-memory entity back to the database? Shouldn't this
> work?
> 
> Thank you,
> Gili
> 
-- 
View this message in context: http://www.nabble.com/-ClassName--cannot-be-merged-because-it-has-changed-or-been-deleted-since-it-was-last-read-tp19465366p19465510.html
Sent from the EclipseLink - Users mailing list archive at Nabble.com.