I had the problem after turning of the 2nd level disk cache (ehcache). Seems to be ignorable.
equals and hashCode should be consistent on your classes, and depend on the same fields. Otherwise usage in HashSets or HashMaps will cause problems. For persistent objects they should be implemented using business keys.
If you are still on hibernate 2 then xdoclet will allow you to use some kind of annonation.