今天有开发同事说,在多笔数据的情况下,系统抛出
ERROR org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction; nested exception is org.hibernate.TransactionException: nested transactions not supported
异常。
看异常是因为Hibernate根本就不支持Nested Transaction,最新的Hibernate4也是如此。在配置文件中设置"nestedTransactionAllowed=true",其实只对JDBC事务起效(如使用Spring的JdbcTemplate)。
解决方法是去掉
session.beginTransation();session.getTransaction().commit();
或者使用
Session session=sessionFactory.openSession();
Transaction transaction=session.beginTransaction();方法来开启session