Hibernate 嵌套@Transactional

Hibernate 嵌套@Transactional,hibernate,spring,jakarta-ee,transactions,transactional,Hibernate,Spring,Jakarta Ee,Transactions,Transactional,是否可以在spring中嵌套@Transactional注释方法?考虑这样的事情: @Transactional public void a() { obj.b(); } @Transactional public void b() { // ... } 如果我在b()中回滚,在a()中回滚,在这种情况下会发生什么?方法b()上的第二个@Transactional注释不是必需的,因为默认情况下@Transactional具有required的传播,因此方法a()调用的方法将

是否可以在spring中嵌套@Transactional注释方法?考虑这样的事情:

@Transactional
public void a() {
    obj.b();
}

@Transactional
public void b() {
    // ... 
}

如果我在b()中回滚,在a()中回滚,在这种情况下会发生什么?

方法
b()
上的第二个
@Transactional
注释不是必需的,因为默认情况下
@Transactional
具有
required
的传播,因此方法
a()
调用的方法将是事务性的。如果希望在方法
a()
调用的方法中启动新事务,则需要修改传播规则。阅读。

由于
b
是公共的,如果其他呼叫者独立于
a
使用它会怎么样?那么什么是最佳实践呢?我认为如果它是公共的,那么它必须有@Transactional注释。在我的情况下,我不得不改为“私人可见性”。