jOOQ和Spring事务管理
2022-09-03 13:50:27
我使用jOOQ 3.8和Spring Boot 1.4.1。我看到jOOQ使用一种机制来保证交易的处理。
如果我定义一个注释为事务性的方法,并且在执行两个插入内,它们是否在同一事务中执行,例如
@Transactional(propagation = Propagation.MANDATORY)
public doInsert(){
DSL.using(configuration).insertInto(...);
DSL.using(configuration).insertInto(...);
}
如果发生异常,所有执行的插入都会回滚吗?它们会在一次交易中执行吗?
或者,我应该这样做:
public doInsert(){
create.transaction(configuration -> {
DSL.using(configuration).insertInto(...);
DSL.using(configuration).insertInto(...);
});
}
如果我使用注释和jOOQ事务,会发生什么情况,如下所示:
@Transactional(propagation = Propagation.MANDATORY)
public doInsert(){
create.transaction(configuration -> {
// Wrap configuration in a new DSLContext:
DSL.using(configuration).insertInto(...);
DSL.using(configuration).insertInto(...);
});
throw new RuntimeException(":)");
}
无论异常如何,是否都会提交事务中的更改?(我期待它)