一尘不染

使用Springs Transaction Management与使用Hibernate的好处

hibernate

我一直在尝试学习Spring和Hibernate,并且我在网络上使用了很多示例来组合一个不错的应用程序。但是,我现在意识到Spring支持事务管理。在我的spring应用程序中,我只是简单地拨打了我想直接拨打的电话即可进入hibernate状态。人们为什么会使用Spring的事务管理/数据库资料,是否有原因/好处?


阅读 164

收藏
2020-06-20

共1个答案

一尘不染

真正的优点是:

  • 轻量级声明性语法。相比:
        public void saveEmployee(Employee e) {
        Session s = sf.getCurrentSession();    
        s.getTransaction().begin();
        s.save(e);    
        s.getTransaction().commit();
    }

        @Transactional
    public void saveEmployee(Employee e) {
        sf.getCurrentSession().save(e);
    }
  • 灵活的交易传播。想象一下,现在您需要在saveEmployee()复杂事务中执行此方法。对于手动事务管理,由于事务管理是硬编码的,因此您需要更改方法。使用Spring,事务传播可以顺利进行:
       @Transactional
    public void hireEmployee(Employee e) {
        dao.saveEmployee(e);
        doOtherStuffInTheSameTransaction(e);
    }
  • 发生异常时自动回滚
2020-06-20