【发布时间】:2019-01-19 10:39:33
【问题描述】:
在与 Hibernate JPA 集成的 Spring Boot 应用程序中。事务管理有哪些不同且最有效的方法,以及针对各种场景需要考虑的关键点。
此时,我们在 Controller 层的服务层调用上使用了@Transactional 注解;服务层因此执行各种读/写 DAO 调用。带有@Transactional 的DAO 方法。
在必须直截了当的基本场景中,这很适合我们在单个服务层调用中对单个实体进行操作并且我们希望将完整的操作集包含在单个事务中。
但是,如果我们想要根据具体情况采取不同的行为呢?例如如果我们在服务层调用中对一组实体进行循环操作,并且虽然我们希望对每个实体的操作都是事务性的,但是如果我们不希望整个循环成为单个事务。或者,如果在对特定实体进行操作时,需要将多个操作作为工作流的一部分执行,则可能需要这些工作流的子集在出现异常/错误情况时不会影响在它们之前执行的操作在子集中。
我知道可能有很多不同的方法可以实现这一目标,但我一直在寻找最佳、最有效和最有效方法的线索。
提前致谢!!
【问题讨论】:
标签: java spring hibernate spring-boot spring-transactions