因为我是通过某个字段删除相关记录,由于该字段不是主键之类的
所有通过hibernate 的session 调用hql 来删除记录。
代码如下:
/** * 删除操作 */ public void deleteRP(String hql){ Session session=this.getSession(); Transaction t=session.beginTransaction(); session.createQuery(hql).executeUpdate(); t.commit(); session.flush(); session.clear(); }
执行完上面代码后,数据成功删除,但是页面显示 500 错误,提示如下
org.apache.struts.action.RequestProcessor.processException(516) | Unhandled Exception thrown: class org.springframework.transaction.TransactionSystemException 2009-8-20 17:33:03 org.apache.catalina.core.StandardWrapperValve invoke 严重: Servlet.service() for servlet action threw exception org.hibernate.TransactionException: Transaction not successfully started at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:100) at org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:578) at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:662) at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:632) at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:314) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:116) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) at $Proxy31.addRiskUnitProfileRelation(Unknown Source)....
很郁闷的问题,总是提示事务不能成功开启, 各位帮忙分析下 是什么原因?