java - Spring @Transactional 注解问题

标签 java spring hibernate

我有两个方法都注释为@Transactional,并且都执行一些数据库操作,主要是插入。

我从方法A调用方法B

@Transactional
public void methodA(){
methodB();

// Some database Operations

// some error conditions....
throw exception;
}

@Transactional
public void methodB(){
// Some database Operations
}

所以我想仅在所有操作都成功时才提交 MethodA 和 MethodB 的数据库事务。 因此,即使方法A中遇到异常,方法B中所做的更改仍然会被提交。

如果方法A遇到错误,我希望方法B的更改回滚。

我还需要做点别的吗?

最佳答案

methodA() 中调用的所有方法都将是事务性的,如 @Transactional annotation has a propagation of required by default 。因此 methodB() 中的 @Transactional 并不是必需的。

关于java - Spring @Transactional 注解问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22001492/

相关文章:

Java BigInteger 替代方案

java - java中的自定义分析器,使用edgeNGram标记过滤器

java - 正则表达式多行html代码?

java - 资源名称中的 spring-way 句柄斜线

java - 带有main方法的spring3注解

java - 在 hibernate 中为某些查询选择 SQL 而不是 HQL 的依据是什么?

java - Android中的调用方法

java - 如何使用 JPA 在 Hibernate 4 中启用 Multi-Tenancy ?

java - 修改WEB-INF文件夹下的文件-tomcat作为热部署

java - RequestMapping 与 hibernate OneToMany 如何以正确的方式插入外键