gpt4 book ai didi

java - Spring 事务上下文包装?

转载 作者:行者123 更新时间:2023-11-29 09:13:34 25 4
gpt4 key购买 nike

我正在使用 spring/hibernate。我有服务层和 DAO 层。事务放在服务层。我有 FirstServiceImpl 类。在 FirstServiceImpl 类的一个方法中,它有 500 行代码。我所做的是将所有 500 行代码放在一个单独的类中(编写一个接口(interface)和实现类。在 FirstServiceImpl 类中,我 Autowiring 新创建的接口(interface)以访问其单一方法)。我将 @Transactional 放在 FirstServiceImpl 类上。

我的问题是“新创建的类逻辑是否也在事务上下文中运行”?

谢谢!

最佳答案

我不确定,但我认为它会使用 transaction propagation .但我可以告诉您确定的方法来测试它是否有效。

在单个事务中通过您的代码执行以下数据库操作。

Insert/update one row into db, try to insert/update second row in the same transaction.

While inserting second row intentionally raise an exception. If you can see "first entry" in database, that means your transaction is not rolled back. And it does not work.

While if there is no first row entry in database, that means your transaction is rolled back. Here you may get UnexpectedRollbackException.

在测试之前确保你的注解是@Transactional(propagation=Propagation.REQUIRED)

关于java - Spring 事务上下文包装?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10945810/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com