this problem is applicable to JBOSS 3.2.1.
i was confused when I saw cache invalidations for some entity beans in the server log although I accessed them without modifiying anything!
I think there is a bug in JBOSS code JDBCIsModifiedCommand. JDBCIsModifiedCommand.execute() returns always true and gets for instance called in a container configuration with cache invalidation enabled.
I think the check code for dirty fields from the JDBCStoreEntityCommand.execute() method nust be applied also in the JDBCIsModifiedCommand.execute() method!
Ups - sorry for posting - there is already a bugtracker entry for this problem: #710755