Because if it were an instance level field, it would actually be a “Per Thread - Per Instance”, and not just a guaranteed “Per Thread”. This is usually not the semantics you are looking for.
Usually it holds something like objects that are tied to a user dialog, web request, etc. You do not want them to be subordinate to the class instance either.
One web request => one save session.
Not one web request => one persistence session for each object.
Affe May 6, '10 at 20:01 2010-05-06 20:01
source share