要在出错时回滚,我使用 javax.ejb.SessionContext 来执行此操作,
首先我按sessionContext.getUserTransaction().begin()
然后我使用sessionContext.getUserTransaction().rollback()
回滚并使用sessionContext.getUserTransaction().commit();
到should complete transaction before returning.
但问题是如果没有任何改变,这将抛出org.hibernate.exception.GenericJDBCException: could not prepare statement
。
结论:无论如何都要停止SessionContext?