Spring Boot @Transactionnal Imbrichic不良练习



我正在开发带有Spring Boot的JEE应用程序。我只想确保透露@transactionnal的Imbricate功能会有任何问题吗?这是一个不好的做法吗?

在我的示例中,我想保存两个用户之间的关系,如果我调用了最后一个功能,它将增加三个事务。

@Transactional
public PrRelationship save(Relationship r)
{
    Relationship result = this.relationshipRepo.save(r);
    return result;
}
@Transactional
public Relationship save(Relationship r, User relation)
{
    this.userService.save(relation);
    r.setUser(user);
    r.setUserRelation(relation);
    return this.save(r);
}
@Transactional
public Relationship save(Relationship r, User user, User relation) {
    this.userService.save(user);
    return this.save(r, relation);
}

谢谢您的建议:)

您应该在春季对交易传播和交易管理进行一些阅读。它将回答这类问题。

要回答您的问题,默认传播是REQUIRED,这意味着从创建事务的方法中对交易方法进行的任何调用都将在同一交易上执行。因此,在您的情况下,他们将" Imbrate"(我必须看一下这个词)。

最新更新