Let me see if I understand this correctly... I get a list object back from a call to executeQueryForList(). I have caching enabled in ibatis, so ibatis caches the list, or a reference to it. As long as the cache has not been flushed, if I make another call to the same mapped statement using executeQueryForList(), it returns the same list, not a separate copy of the list but the same one as before.
I then modify the contents of this list, but nothing has been updated in the database yet. Another user logs into the system and calls that same mapped statement. He will get the list that has the modifications made by the first user, even though nothing has been updated in the database. Is this correct? I think this is the behavior I'm seeing. So, what is best practice to avoid this? Should I make deep copies of all objects returned from ibatis if I am using caching? What are my options? Thanks, Brian Barnett

