에서 트랜잭션을 커밋하고 트랜잭션이 삽입 실패 할 경우봄 + 최대 절전 모드 : 수동으로 나는 스프링 MVC를 사용하고 끝
모든 트랜잭션이 성공적으로 저장 나는 수동으로 트랜잭션을 커밋 어떻게@Controller
public class COACategoriesController {
protected static Logger log = Logger.getLogger(COACategoriesController.class);
@Resource(name="COACategoriesService")
private COACategoriesService obj_coacs;
@Resource(name="COAMaintenanceService")
private COAMaintenanceService obj_coams;
@RequestMapping(value = "/addCoaCategory", method = RequestMethod.POST)
public String addCoaCategory(@RequestParam("conCatName") String coaCatName, Model model) {
Date sysdate = null;
String Message="";
try{
sysdate = new Date();
COACategoriesModel model1 = new COACategoriesModel(coaCatName, 1, "", sysdate , 0);
COAMaintenanceModel account = new COAMaintenanceModel();
account.setDiscription("Test Description");
account.setCategoryId(model1);
Message="Fail-First";
obj_coacs.AddCOACategories(model1);
Message="Fail-Second";
obj_coams.AddCOAMaintenance (account);
Message="Add Successfully";
}catch(Exception ex){
log.error("Exception.."+ex);
model.addAttribute("success", Message);
}
return "fin/category";
}
}
은, 모든 롤백 최대 절전 모드 catch 블록의 트랜잭션. ?
나는 스프링 MVC를 사용하고
예에서 다음 코드 종류를 사용! 이것은 현재 내가 직면하고있는 문제를 해결합니다. 그러나 2 가지 방법을 결합하지 않고 어떤 방법이 있다면 제발 저에게 말할 수 있습니까? 실제로 최대 절전 모드에서 트랜잭션을 쉽게 커밋하고 롤백 할 수 있지만 스프링 MVC와 통합 한 후에는 문제가 있습니다. ? –
@ShahidGhafoor "@TransactionConfiguration (defaultRollback = false)"를 사용해 보셨습니까? 나는 Alexey가 옳다고 생각하는데, 두 가지 (또는 그 이상) 방법으로 나누어야 할 수도 있습니다. 또는 Spring 종속성 삽입을 사용하여 TransactionManager를 얻거나 수동 커밋/롤백을 사용하여 고유 한 TransactionManager를 구현할 수 있습니다. 그러나, 나는 개인적으로이 대안을 정말로 좋아하지 않습니다. – Rafa
@ShahidGhafoor, 내 이전 설명을 보완 : http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/transaction.html#transaction-programmatic – Rafa