我知道我发布了一个多余的问题。我在SO和其他博客中也经历了各种各样的帖子,但我要求更多关于更多项目的清晰度。所以在这里张贴。
我使用Spring + Hibernate。我正在插入一些'n'记录。
MySpringController.java
@Transactional
@RequestMapping(...)
public String saveRecords(@ModelAttribute("orderObj") Order order){
for(Item item : order.getItems()){
itemDAO.save(item);
}
return "saveSuccess";
}
MyHibernateDAO类
public void save(Item item){
session = sf.openSession();
Transaction tx = session.beginTransaction();
session.persist(item);
tx.commit();
session.close();
}
问题:
Spring和Hibernate都启用了Transaction。这是一个好习惯吗?或者任一组件中的事务是 足够?
在这样的批量事务中,建议使用session.openSession()或session.getCurrentSession()吗?好吗 练习打开&批量提交期间每次关闭交易?
- 醇>
现在如果发生回滚,它将在哪个范围内?在Hibernate或Spring的交易下?
答案 0 :(得分:3)
虽然交易管理的使用因应用程序而异,但我可以根据我的经验指出一些重要的事情。
您不需要同时使用Hibernate和Spring事务。
以上几点基于我的经验,可能会因申请要求而异。