spring - spring事务管理和hibernate事务管理的区别

标签 spring spring-transactions

spring 中的事务管理和 中的事务管理有什么区别

hibernate ??我引用了很多网站,但还是看不懂

最佳答案

可以使用 Spring 和 Hibernate 来实现事务管理,但使用 Spring 通过在内部处理回滚/提交来删除大量重复代码。

休眠中

尝试{

 sessionFactory = HibernateUtil.getSessionFactory();

    session = sessionFactory.getCurrentSession();

trans= session.beginTransaction();

session.save(txn);

trans.commit();

}catch(异常e)

{

trans.rollback();

}

在 Spring 中,您只需使用声明式((服务方法上的@Transactional注释)方法来处理保存和提交部分,无需编写类似的语句 transaction.commit(); transaction.rollback();

@事务

public void addCustomer(Customer c) { 

    this.customerDAO.addCustomer(c);

}

这可能需要在复杂映射的情况下进行大量条件检查,并在依赖表中保存/回滚事务。 Spring消除了所有手动处理代码,并通过使用代理,仅在所有事务执行成功时才保存事务,否则回滚整个事务,从而实现事务的ACID属性。

此外,hibernate 的工作是对数据库执行查询,Spring 事务管理负责事务的原子性质,因此您可以更多地关注逻辑,而不是自己处理事务管理。

关于spring - spring事务管理和hibernate事务管理的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38630606/

相关文章:

java - 通过 ID 获取 Spring 事务并检查状态

java - 如何通过 Spring 注释使用构建器模式

java.lang.ClassNotFoundException : org. hamcrest.Matchers 添加依赖项后 pom.xml

java - 是否可以在TokenEnhancer中获取ClientDetails

spring - "LinkageError--> loader ' 应用程序 ' attempted duplicate class definition"将类标记为 @Transactional 后

java - Spring数据源事务管理器: transactionality across multiple instances of an application

spring - 如果使用 Spring AMQP 的数据库事务成功,则仅将消息发布到 RabbitMQ

java - 保存关系的一侧时出现 LazyInitializationException

java - 使用 Spring 禁用 Controller 端点

java - 对 hibernate 应用程序使用@Transactional 注释导致错误