Hibernate's Session class has the method isDirty() which tells you whether there are any changes that still need to be synchronized with the database, i.e. that there are still pending operations. Perhaps it is obvious to some, but I was caught thinking that it meant that the current Hibernate transaction contains uncommitted changes. It doesn't. If you want to know that, you must keep track of it yourself (perhaps by registering some listeners within Hibernate).