0 0

SSH 集成的系统中 事务不能成功开启: Transaction not successfully started3

因为我是通过某个字段删除相关记录,由于该字段不是主键之类的
所有通过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)....

 

 

很郁闷的问题,总是提示事务不能成功开启, 各位帮忙分析下 是什么原因?

 

2009年8月20日 17:37

2个答案 按时间排序 按投票排序

0 0

采纳的答案

你是用spring管理了事务吧,
修改下

/**
* 删除操作
*/
public void deleteRP(String hql){
Session session=this.getSession();

session.createQuery(hql).executeUpdate();

session.flush();
session.clear();
}

2009年8月20日 17:50
0 0

" target="_blank">" />" target="_blank">" wmode="" quality="high" menu="false" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="200" height="200">

2014年11月13日 18:28

相关推荐

    laravel 解决多库下的DB::transaction()事务失效问题

    问题:最近使用laravel的DB::transaction()方法进行事务操作时,发现事务总是无效的。代码如下: DB::transaction(function () use ($uid, $roleId) { RoomUserRole::insert([ 'uid' => $uid, 'role_id' => $...

    Axis2集成SSH搭建WebService支持事务(图文详解含核心代码).zip

    通过以上步骤,你将能够成功地在Axis2中集成SSH,创建出一个支持事务的Web服务。这样的服务不仅能够提供安全的数据传输,还能保证在分布式环境下的数据一致性。在实际项目中,可能还需要考虑其他因素,如性能优化、...

    SSH笔记-事务管理

    在IT行业中,SSH(Spring、Struts、Hibernate)是一个经典的Java Web开发框架组合,而这里的“SSH笔记-事务管理”主要关注的是Spring框架中的事务管理部分。Spring以其强大的依赖注入和面向切面编程能力,提供了灵活...

    Springboot 集成Tcc-transaction1

    在Spring Boot应用中集成TCC(Try-Confirm-Cancel)分布式事务管理,是为了解决在微服务架构中跨服务的复杂事务问题。TCC模式是一种补偿型事务处理方式,它将每个业务操作分为尝试(Try)、确认(Confirm)和取消...

    javax.transaction-api-1.2-API文档-中文版.zip

    赠送jar包:javax.transaction-api-1.2.jar; 赠送原API文档:javax.transaction-api-1.2-javadoc.jar; 赠送源代码:javax.transaction-api-1.2-sources.jar; 赠送Maven依赖信息文件:javax.transaction-api-1.2....

    带事务的ssh框架源代码

    在这个“带事务的ssh框架源代码”中,我们将会探讨SSH框架如何处理数据库事务,以及不同版本的Spring(1.2、2.5、3.2)在事务管理上的差异。 首先,Struts作为表现层框架,主要负责用户界面与控制器之间的交互。它...

    SSH事务配置大全

    除了直接在服务层Bean中集成事务管理之外,还可以使用代理模式为服务层Bean添加事务支持。这种方式可以避免在服务层Bean中直接编写与事务相关的代码,从而使得代码更加清晰和易于维护。示例代码如下: ```xml ...

    javax.transaction-api-1.2-API文档-中英对照版.zip

    赠送jar包:javax.transaction-api-1.2.jar; 赠送原API文档:javax.transaction-api-1.2-javadoc.jar; 赠送源代码:javax.transaction-api-1.2-sources.jar; 赠送Maven依赖信息文件:javax.transaction-api-1.2....

    ssh事务处理

    在SSH框架中,Spring负责提供事务管理服务,而Hibernate作为持久层框架则与Spring紧密集成,共同实现对数据库操作的事务控制。接下来,我们将详细分析如何在SSH框架中配置和使用事务管理。 #### 三、事务管理配置 ...

    Principles of transaction processing

    - 隔离性(Isolation):并发事务的执行互不干扰,每个事务都能感觉不到其他事务在并发地执行。 - 持久性(Durability):一旦事务提交成功,其所做的修改就必须永久保存在数据库中。 2. 事务的管理 事务处理系统...

    Could not roll back Hibernate transaction.doc

    这表明Hibernate事务回滚操作失败,导致事务不能正确回滚。 二、问题原因 该问题的主要原因是手动对数据库做了些操作,导致Hibernate事务回滚操作失败。这种情况可能是由于开发人员手动执行了数据库操作,而没有...

    声明式事务处理 SSh

    在Spring的配置文件中,我们可以定义`<tx:advice>`元素来创建事务通知,其中`<tx:method>`子元素用于指定哪些方法需要开启事务。例如,我们可以通过`name`属性来匹配方法名,`propagation`属性设置事务的传播行为...

    springboot-transaction事务

    否则抛异常)、NOT_SUPPORTED(始终不开启事务)、NEVER(如果有事务则抛异常,否则不开启事务)、NESTED(如果已有事务,则在嵌套事务中运行,否则按REQUIRED处理)。 4. **回滚规则** - 默认情况下,如果在事务...

    SSH框架集成步骤

    ### SSH框架集成步骤详解 #### 一、概述 SSH(Struts + Spring + Hibernate)是一种常用的Java Web开发架构,它将MVC模式与业务逻辑层、数据持久化层结合在一起,形成一个完整的三层架构系统。本文档将详细介绍...

    SQLServer存储过程中事务的使用方法

    在SQL Server中,事务是确保数据一致性的重要机制,特别是在存储过程中。存储过程是一组预编译的SQL语句,可以在数据库中被多次调用,提高了效率并降低了网络流量。本篇将详细介绍如何在SQL Server存储过程中使用...

    基于IDEA的SSH项目之六:添加事务管理--程序包

    在SSH项目中,Spring的事务管理通过AOP(面向切面编程)来实现,允许开发者声明式地控制事务边界,无需在代码中显式调用开始事务、提交事务或回滚事务等操作。 接下来,我们将介绍如何在Spring配置文件中设置事务...

    (精选)CHI协议,transaction事务汇总

    CHI协议,transaction事务汇总: 1.部分事务分为ptl/full ,这里不做区分。 2.事务名基本可以“望文生义”,也就是我们代码所推荐的“命名即注释”。 3.部分事务的行为并不完全确定,个人推测。 4.针对request type...

    ssh集成开发宝典

    SSH集成开发宝典是一本深度探讨Java Web开发中三大框架——Struts、Spring和Hibernate集成应用的权威指南。这本书旨在帮助开发者从基础到高级全面掌握SSH框架的使用,提升开发效率,实现高质量的Web应用程序。 ...

    在SSH中使用事物包括SSH的搭建和配置;事物的配置;注释详细

    在SSH(Struts2、Spring、Hibernate)框架组合中,事务管理是确保数据一致性与完整性的关键机制。SSH是一个常见的Java Web开发栈,用于构建高效、模块化且可维护的应用程序。下面我们将深入探讨SSH中的事务管理和...

Global site tag (gtag.js) - Google Analytics