Oops, I should have noticed that:
Quote:
employee.setFirstName("joe1");
session1.save(employee);
tx1.commit();
employee.setFirstName("joe2");
session2.save(employee);
tx2.commit();
Your session2.save(employee) is saving an object which has NOT been loaded by session2 - it was loaded by session1.
Perhaps you wanted to change and save en 'employee2'.
So, in your code, employee may be considered a 'detached' object (from the session2's point of view). Then the behavior depends great deal upon how you defined your object 'identity' -- I suspect there is something wrong there...
(Don't forget to rate this posting, if it happened to help).
Martin.