开发者社区> 问答> 正文

spring + mybatis 注解事务无效:配置报错 

我的配置如下

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
	http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
	http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">


	<context:property-placeholder location="classpath:jdbc.properties" />

	<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
		destroy-method="close">
		<property name="driverClass" value="${jdbc.driverClassName}" />
		<property name="jdbcUrl" value="${jdbc.url}" />
		<property name="checkoutTimeout" value="8000" />
		<property name="properties">
			<props>
				<prop key="user">${jdbc.username}</prop>
				<prop key="password">${jdbc.password}</prop>
				<prop key="c3p0.minPoolSize">${jdbc.minPoolSize}</prop>
				<prop key="hc3p0.maxPoolSize">${jdbc.maxPoolSize}</prop>
				<prop key="hc3p0.timeout">${jdbc.timeout}</prop>
				<prop key="c3p0.max_statement">${jdbc.max_statement}</prop>
				<prop key="c3p0.testConnectionOnCheckout">${jdbc.testConnectionOnCheckout}</prop>
				<prop key="hibernate.c3p0.testConnectionOnCheckout">${jdbc.testConnectionOnCheckout}</prop>
			</props>
		</property>
	</bean>

	<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
		<constructor-arg>
			<ref local="dataSource" />
		</constructor-arg>
	</bean>


	<bean id="transactionManager"
		class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource">
			<ref local="dataSource" />
		</property>
	</bean>

	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="dataSource" />
		<property name="mapperLocations"
			value="classpath:com/yung/platform/user/mapper/*.xml" />
	</bean>


	<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
		<constructor-arg>
			<ref local="sqlSessionFactory" />
		</constructor-arg>
	</bean>

	<tx:annotation-driven transaction-manager="transactionManager" />

</beans>
@Transactional
	public void createUser(User user) {
		userDao.createUser(user);
		throw new RuntimeException("----------------------------");
}
这样它并没有发生回滚 那位能看看什么问题?

展开
收起
kun坤 2020-06-04 10:23:37 638 0
1 条回答
写回答
取消 提交回答
  • ReadOnly=false######默认不就是false吗######可以先检查一下 你的表是否支持事务?######回复 @villdecl : 是的 你是用的哪种数据库?######你指的是数据库吗?###### 没看到scan-package注解扫包的配置。
    <context:component-scan base-package="com.xxx"> ######回复 @villdecl : @Transactional 这个注解需要先扫描。######事务注解需要扫描吗?

    2020-06-04 11:20:18
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Java Spring Boot开发实战系列课程【第6讲】:Spring Boot 2.0实战MyBatis与优化(Java面试题) 立即下载
Java Spring Boot开发实战系列课程【第7讲】:Spring Boot 2.0安全机制与MVC身份验证实战(Java面试题) 立即下载
Spring Cloud 微服务核心组件集 mica 的设计思路 立即下载

相关实验场景

更多