我正在将Hibernate用于REST API。现在,所有事务都通过显式调用beginTransaction和transaction.commit进行处理。如果发生故障,事务将回滚。我正在寻找使用@Transactional而不是所有的beginTransactions并提交事务。有人可以告诉我如何将@Transactional集成到休眠状态。我正在使用mysql查询数据库。
答案 0 :(得分:0)
您可以使用 @Transactional 注释查询方法,以便在方法结束时打开,提交和关闭事务。
请注意隔离级别(https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/transaction/annotation/Transactional.html#isolation--),因为它表明Spring将在何时为您的交易创建新会话,或仅使用已打开的会话。
当您在方法上引发异常时,事务会自动回滚,您会很高兴:)
答案 1 :(得分:0)
您可以将Spring Framework与Hibernate Integration结合使用。好处是spring管理Hibernate会话的内容以及我们必须在hibernate中手动管理的所有低级内容,例如粒度提交等。这是此示例。这是较旧的存储库,因此使用较旧的Spring和Hibernate版本,但是您可以升级它here