spring junit4 测试完毕后 事务自动回滚的解决方法

一直以为在类前面加

 

@TransactionConfiguration(transactionManager="transactionManager", defaultRollback=true)

就能让事务自动回滚,后来经过无数次的验证,我错了。 原因很简单,忘记重载

 

org.springframework.test.context.junit4.AbstractTransactionalJUnit4SpringContextTests;

 

public class UserServiceTest extends AbstractTransactionalJUnit4SpringContextTests{

 

 

完整类,贴出来:

 

import java.sql.Timestamp;

import org.eric.ehome.dao.OutcomeDao;
import org.eric.ehome.domain.Outcome;
import org.eric.ehome.domain.OutcomeType;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.AbstractTransactionalJUnit4SpringContextTests;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.transaction.TransactionConfiguration;

@RunWith(SpringJUnit4ClassRunner.class)
@TransactionConfiguration(transactionManager="transactionManager", defaultRollback=true) 
@ContextConfiguration({"classpath:ehome-servlet.xml","classpath:ehome-database.xml","classpath:ehome-service.xml"})
public class OutcomeDaoHibTest extends AbstractTransactionalJUnit4SpringContextTests{
	@Autowired
	private OutcomeDao outcomeDao;
	@Autowired
	private HibernateTemplate hibernateTemplate;
	
	@Test
	public void testSave(){
		Outcome oc = new Outcome();
		oc.setAmount("190");
		oc.setConsumeDate(new Timestamp(System.currentTimeMillis()));
		oc.setCreateDate(new Timestamp(System.currentTimeMillis()));
		oc.setType(new OutcomeType(1, "q死s"));
		hibernateTemplate.save(oc);
	}
	
}

 

 

如果遇到找不到 transactionManager,请在配置文件中添加,因为@TransactionConfiguration默认使用的是这个事务管理。

如果提示 CGLIB2 is not available 处理方法 ,请看:http://dycg.iteye.com/blog/1775649

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值