Java 弹簧&x2B;休眠:在结束时手动提交事务

Java 弹簧&x2B;休眠:在结束时手动提交事务,java,spring,hibernate,autocommit,Java,Spring,Hibernate,Autocommit,我正在使用SpringMVC和hibernate @Controller public class COACategoriesController { protected static Logger log = Logger.getLogger(COACategoriesController.class); @Resource(name="COACategoriesService") private COACategoriesService obj_coacs; @Resource(nam

我正在使用SpringMVC和hibernate

@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块中的所有事务


我正在使用spring mvc和hibernate

我更喜欢在某些服务中创建一个单独的方法(组合您的两种方法)来处理所有必要的事务。

我更喜欢创建一个单独的方法(组合您的两种方法)在某些服务中处理所有必要的事务。

首先,需要将属性
connection.autocommit
设置为
false
,以启用事务级提交

这可以通过添加

<property name="connection.autocommit">false</property>

首先,需要将属性
connection.autocommit
设置为
false
,以启用事务级提交

这可以通过添加

<property name="connection.autocommit">false</property>

异常:没有绑定到线程的Hibernate会话,此处的配置不允许创建非事务性会话,因为我使用的是Spring+HibernateException:没有绑定到线程的Hibernate会话,此处的配置不允许创建非事务性会话,因为我使用的是Spring+HibernateEyes!这解决了我目前面临的问题。但你能告诉我,如果有任何方法不结合2方法。实际上,在hibernate中,我可以很容易地提交和回滚事务,但是在与SpringMVC集成之后,我遇到了问题@ShahidGhafoor是否尝试使用“@TransactionConfiguration(defaultRollback=false)”?我认为Alexey是对的,你可能需要用两种(或更多)方法来分解它。或者,您可以尝试使用Spring依赖项注入获取TransactionManager,或者使用手动提交/回滚实现您自己的TransactionManager。然而,我个人并不真的喜欢这个选择。@ShahidGhafoor,补充我之前的评论:是的!这解决了我目前面临的问题。但你能告诉我,如果有任何方法不结合2方法。实际上,在hibernate中,我可以很容易地提交和回滚事务,但是在与SpringMVC集成之后,我遇到了问题@ShahidGhafoor是否尝试使用“@TransactionConfiguration(defaultRollback=false)”?我认为Alexey是对的,你可能需要用两种(或更多)方法来分解它。或者,您可以尝试使用Spring依赖项注入获取TransactionManager,或者使用手动提交/回滚实现您自己的TransactionManager。然而,我个人并不喜欢这种选择。@ShahidGhafoor补充了我之前的评论: