TransactionTemplate 事务编程式写法

483 阅读1分钟

建议使用声明式事务@Transactional(rollbackFor = Exception.class)粒度不够,拆分方法

import org.springframework.transaction.support.TransactionTemplate;
@Autowired
private TransactionTemplate trans;

    /**
	 * 编程式事务
	 */
public void transfer() {
        
		//无返回值
		trans.executeWithoutResult((status) ->{
			boolean save = this.save(t);
			if(!save) {
				status.setRollbackOnly();
			}
		});
		
        //有返回值
		trans.execute((status) ->{
			boolean save = this.save(t);
			if(!save) {
				status.setRollbackOnly();
			}
            return new Object();
		});
		
	}