【发布时间】:2017-02-20 11:46:37
【问题描述】:
我使用 jOOQ 3.8 和 Spring Boot 1.4.1。 我看到jOOQ使用了一种机制来保证handling of transactions。
如果我定义一个注释为事务性的方法并在执行两个插入中,它们是否在同一个事务中执行,例如
@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(":)");
}
无论异常是否都会提交事务中的更改? (我会期待的)
【问题讨论】:
标签: java spring transactions jooq