Thanks for an awesome and detailed reply. I have another question though. You said "
The java.sql.Date has a granularity of 1 day, but it's based on java.util.Date, which has a granularity of 1 millisecond. Oracle Dates have a granularity of 1 second. "
Does this change if we use Timestamps? The granularity should be more if we use Timestamps.
Also, in our case, we are not doing anything but deleting the record. I did not quite understand when you said the record in local memory is purged. What we are doing is get the record, delete the record. Do you mean when we got the record, it is cached and later got purged for some reason? and when we do a delete, there is a comparision with the actual record in the database (this is retrieved after got truncated) and because of the truncation there is a mismatch?