I have found out the benchmarking result I mentioned in my post was problematic: Toplink Essentials didn't work properly. The insert statement never got executed. Probably because weaving didn't work in WebSphere. Whenever I turned on dynamic weaving, it crashed WebSphere AS.
So for now I'll stick with Hibernate.
But I do believe Toplink holds advantage for read most data because of its shared cache design. But in highly transactional system, that advantage may not be very useful.
[Message sent by forum member 'anqingxu' (anqingxu)]
http://forums.java.net/jive/thread.jspa?messageID=321654