以下是代码:
package cn.hr.controller;
import java.io.PrintWriter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.TransactionDefinition;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.support.DefaultTransactionDefinition;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import cn.hr.base.action.BaseAction;
import cn.hr.service.IAnnualbonuService;
@Controller
@RequestMapping(value="/demoTest")
public class DemoTestController extends BaseAction<Object>{
@Autowired
private IAnnualbonuService annualbonuService;
@Autowired
private PlatformTransactionManager transactionManager;
/**
*
* @param payNamelist
* @param request
* @param response
* @param session
*/
@RequestMapping(value = "/deletePayNamelist",method = RequestMethod.POST)
public void deletePayNamelist(HttpServletRequest request, HttpServletResponse response,HttpSession session) {
PrintWriter out = null;
TransactionStatus status = this.transaction();
try {
//=====================业务逻辑处理地方================================
out=response.getWriter();
out.write("0");
out.flush();
transactionManager.commit(status);
} catch (Exception e) {
transactionManager.rollback(status);
out.write("");
out.flush();
logger.error(e);
}finally{
out.flush();
out.close();
}
}
private TransactionStatus transaction(){
DefaultTransactionDefinition defaultTransactionDefinition = new DefaultTransactionDefinition();
defaultTransactionDefinition.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
TransactionStatus status = transactionManager.getTransaction(defaultTransactionDefinition);
return status;
}
}
主要是transaction这个方法,意思是:new 一个新的事务,再设置自己所需要的事务隔离级别,最后通过注入的transactionManager得到该事务即可。百分百生效!