Java 弹簧&x2B;休眠:在结束时手动提交事务
我正在使用SpringMVC和hibernateJava 弹簧&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
@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补充了我之前的评论: