Yes, it's written in documentation.
Page 99 of hibernate 3.0.2 documentation (probably in 3.0.1 too):
Quote:
10.10 Flushing session
...
Flush occurs by default at the following points:
before some query execution
from org.hibernate.Transaction.commit();
from session.flush();
The SQL statements are issued in the following order:
all entity insertions, in the same order the corresponding objects were saved using Session.save()
all entity updates
all entity deletions
In general i won't recommend the reuse of a primary key inside a session (delete+insert), as an update is more appropriate.
however if you really need to do it, then issue a Session.flush() between the delete and the insert.
damn, coffee is cold[/i]