I added an FAQ entry for this last week :
Why do I get an ObjectModifiedException when trying to commit a transaction ?

The dirty checking engine will throw an ObjectModifiedException when the values in the cache and in the database are different. This can happen when someone else changed the database content, but also when type mapping is not reversible.

For example, if a java timestamp (java.util.Date) is stored as a DATE, the time part is lost and the dirty checking will fail. Oracle can not tell the difference between an empty String and a null value : if an attribute value is an empty String, dirty checking will also fail. Some precision loss sometimes occur with floating point numbers.

To avoid this, always use reversible mapping conversions. If this is not possible, mark the fields with dirty="ignore" in the mapping file.

Karim DAKKI wrote:
----- Original Message -----
*From:* Karim DAKKI <mailto:[EMAIL PROTECTED]>
*To:* [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
*Sent:* Thursday, January 02, 2003 11:54 AM
*Subject:* Object Modified exception while no modification occuring !

Hello,
I am using the last release of Castor for JDO persistence.
I am doing read transaction on a database and I am having a ObjectModifiedException !
Any clue on where the problem might come from ?
org.exolab.castor.jdo.ObjectModifiedException: Transaction aborted: Object of type com.steveg.model.TournamentData with identity 19 has been modified by a concurrent transaction
Thanks in advance


--
Mickael Guessant
Technical Consultant
http://mguessan.free.fr
mailto:[EMAIL PROTECTED]

----------------------------------------------------------- If you wish to unsubscribe from this mailing, send mail to
[EMAIL PROTECTED] with a subject of:
unsubscribe castor-dev

Reply via email to