java - 确保调用的方法在 Spring @Transactional 边界内

标签 java database spring

我正在使用 org.springframework.transaction.annotation.Transactional 并且正在调用我只希望能够从使用 @Transactional 注释的方法调用的方法>.

由于我不会污染这个问题的原因,我想作为事务的一部分调用的方法永远不应该用事务边界调用,我想强制执行这一点。

我是否可以使用注释或类似的注释来确保只能从使用 @Transactional 注释的方法中成功调用这些方法?

最佳答案

在最简单的情况下,您可以使用 Propagation.MANDATORY(即 @Transactional(propagation=Propagation.MANDATORY))事务传播而不是默认的 Propagation.REQUIRED

如果您使用编程事务,那么您会检查 TransactionStatus getter - 即使您的传播是REQUIRED,您也可以验证 TransactionStatus.isNewTransaction()返回假。

关于java - 确保调用的方法在 Spring @Transactional 边界内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37196712/

相关文章:

java - 将所有整数值转换为 JSON 中的字符串

android - 如何在 Android 的 Listview 中以 blob 形式显示存储在数据库中的图像?

spring - 多个 Camel 路线处理同一个文件

java - 使用 pom 构建时应用程序上下文文件发生更改

ajax - 在grails Controller 中解析ajax多个文件上传

java - 如何使光标停留在窗口的某个区域

java - 无法解析为变量 - gui Controller 代码

java - 用java扫描网页并下载出现在上面的第一个图像?

database - Oracle用rownum查看性能

MySQL:选择最小日期和最大小时