Interesting, I had a quick look at the code of Spring JPA and I thought it would call rollback() in case of problems when they try to begin a transaction. Normally, Hibernate would reset everything with the rollback.