While I am working on a test case, I have to make a small correction: It happens when doing Session.merge(..) on a transient entity, not Session.save(..).