最近开发中,遇到了这样一个问题。
1.系统中,事务是有spring管理的。
2.系统中,即用到了JDBC,又用到了Hibernate。
3.spring管理了jdbc事务,也管理了Hibernate事务。
如上3点所述,存在这样的情况:
配置了jdbc事务的service,注入了配置了hibernate事务的service。这时,执行的时候,系统就会抛出异常:
org.springframework.transaction.IllegalTransactionStateException: Pre-bound JDBC connection found - HibernateTransactionManager does not support running within DataSourceTransactionManager if told to manage the DataSource itself. It is recommended to use a single HibernateTransactionManager for all transactions on a single DataSource, no matter whether Hibernate or JDBC access.
但是,由配置了hibernate事务的service,注入了配置了jdbc事务的service。就能正常运行。
不知道大家有没有遇到过类似的问题。一起讨论一下。
分享到:
相关推荐
通过阅读博文"TransactionInSpringAOP",开发者可以获得关于如何配置Spring AOP以管理Hibernate事务的具体步骤,以及可能遇到的问题和解决方案。这包括但不限于XML配置、Java配置、注解配置等不同方式,并且可能涵盖...
1. 配置事务管理器:在Spring的XML配置文件中,根据数据库类型(如JDBC、Hibernate、MyBatis等)配置相应的事务管理器。 2. 开启事务:使用`@Transactional`注解标记需要在事务中执行的方法。 3. 业务逻辑:在事务中...
总的来说,Spring3和Hibernate4结合使用注解进行事务管理,是现代Java企业应用中的常见实践,它简化了开发过程,提高了代码的可读性和可维护性。了解并熟练掌握这一技术,对于提升开发效率和保证应用质量至关重要。
Spring 声明式事务管理是Spring框架中的一个重要特性,它允许开发者在不编写任何事务管理代码的情况下,通过配置来管理事务。这种方式极大地简化了事务处理,并提高了代码的可维护性。以下是关于Spring声明式事务...
本文将深入探讨Hibernate和Spring框架在Java开发中的关键概念、应用场景以及技术难点。首先,我们来看看Hibernate,这是一个流行的ORM(对象关系映射)框架,它简化了Java应用程序与数据库之间的交互。与传统的JDBC...
1. **引入依赖**:在`pom.xml`或`build.gradle`中添加对`spring-boot-starter-data-jpa`或`spring-boot-starter-aop`的依赖,前者适用于JPA或Hibernate的事务管理,后者用于AOP(面向切面编程)事务管理。...
在企业级应用开发中,Java 平台上的Spring框架提供了强大的事务管理机制,极大地简化了事务处理过程,降低了开发人员的负担。Spring的事务管理主要围绕三个核心接口展开:PlatformTransactionManager、...
通过本文的介绍,我们可以看到Spring框架中事务传播行为的多样性及其在实际应用中的重要性。了解并正确使用这些事务传播行为,可以帮助我们更好地设计和实现复杂的应用程序,确保数据的一致性和事务的完整性。在实际...
Spring框架提供了一套灵活的事务管理机制,用于处理不同的持久化技术,如JDBC、Hibernate等。这些机制基于以下核心接口: 1. **PlatformTransactionManager**:这是Spring提供的事务管理器接口,它为不同的持久化层...
在JavaEE应用程序开发中,Spring、Struts2和Hibernate3是三个非常重要的框架,它们各自负责不同的职责,而将它们整合在一起可以构建出强大的企业级应用。Spring作为核心框架,提供了依赖注入、AOP(面向切面编程)、...
本文将详细讨论Spring框架中的Hibernate事务管理机制,包括事务的隔离级别、事务的传播性质以及Spring的声明式事务管理。 首先,事务的隔离级别是确保多事务并发执行时数据一致性的重要手段。Spring提供了五种不同...
SSH框架集成了Spring的事务管理能力,使得开发者能够更方便地处理数据操作中的事务性问题。在本篇文章中,我们将深入探讨Spring事务的核心概念、配置方式以及使用技巧。 首先,我们需要理解什么是事务。事务是一组...
即使在现有事务中)、`NOT_SUPPORTED`(不在事务中运行,如果已有事务则挂起)、`NEVER`(永不运行在事务中,如果已有事务则抛异常)和`NESTED`(如果在现有事务中,则创建一个嵌套事务,如果没有则新建)。...
- **事务管理器配置**:首先需要定义一个事务管理器,如`PlatformTransactionManager`接口的实现类,常见的有`DataSourceTransactionManager`(用于JDBC事务)和`HibernateTransactionManager`(用于Hibernate事务...
- **Transaction Management:**Spring提供了对多种事务管理的支持,包括JDBC、JPA/Hibernate、JMS、JavaMail等。 - **Spring MVC:**这是Spring的MVC实现,用于构建Web应用程序。 **3. 什么是控制反转(IoC)?** ...
总结起来,Spring事务管理提供了一套强大的机制,使得开发者可以轻松地在应用程序中管理和控制事务,无论是简单的JDBC操作还是复杂的ORM框架如Hibernate,都可以通过声明式或编码式的方式来确保事务的正确性。...
Spring 框架提供了丰富的事务管理支持,使得开发者能够轻松地将事务管理集成到应用程序中。 #### 二、Spring 事务配置的关键概念 ##### 2.1 事务定义 事务是一系列操作的集合,这些操作被视为一个整体,要么全部...
Spring提供了多种实现,如DataSourceTransactionManager(用于JDBC事务)和HibernateTransactionManager(用于Hibernate事务管理)。 接下来,我们关注注解。在Spring中,主要使用以下几种注解来实现声明式事务管理...
5.4.1. 设置和获取属性值以及嵌套属性 5.4.2. 内建的PropertyEditor实现 5.4.2.1. 注册用户自定义的PropertyEditor 6. 使用Spring进行面向切面编程(AOP) 6.1. 简介 6.1.1. AOP概念 6.1.2. Spring AOP的功能和目标 ...