簡體   English   中英

Jooq不適用於春季交易

[英]Jooq not working with spring transactions

我嘗試通過Spring JDBC使用Jooq進行設置,除了事務之外,其他所有東西都正常工作。

這是我當前的設置:

@Configuration
public class DALConfig {

    @Value("${jdbcUrl}")
    String jdbcUrl;

    @Value("${username}")
    String username;

    @Value("${password}")
    String password;

    @Bean(destroyMethod = "close")
    DataSource getDataSource() {
        BasicDataSource dataSource = new BasicDataSource();
        dataSource.setUrl(jdbcUrl);
        dataSource.setUsername(username);
        dataSource.setPassword(password);
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        return dataSource;
    }

    @Bean(name="transactionManager")
    DataSourceTransactionManager getDataSourceTransactionManager() {
        return new DataSourceTransactionManager(getDataSource());
    }

    @Bean(name="transactionAwareDataSource")
    TransactionAwareDataSourceProxy getTransactionAwareDataSourceProxy() {
        return new TransactionAwareDataSourceProxy(getDataSource());
    }

    @Bean(name="connectionProvider")
    DataSourceConnectionProvider getDataSourceConnectionProvider() {
        return new DataSourceConnectionProvider(getTransactionAwareDataSourceProxy());
    }

    @Bean
    DefaultDSLContext getDefaultDSLContext() {
        return new DefaultDSLContext(getConfiguration());
    }

    @Bean
    DefaultConfiguration getConfiguration() {
        DefaultConfiguration config = new DefaultConfiguration();
        config.set(SQLDialect.MYSQL);
        config.setConnectionProvider(getDataSourceConnectionProvider());
        return config;
    }

    @Bean
    CourseDao getCourseDao() {
        return new CourseDao(getConfiguration());
    }
}

我在插入新課程的方法上使用@Transactional(propagation = Propagation.MANDATORY)批注,但是卻遇到以下異常org.springframework.transaction.IllegalTransactionStateException: No existing transaction found for transaction marked with propagation 'mandatory' 我已經閱讀了spring和jooq的文檔,但無法弄清缺少的內容和解決方法。 有人可以指出我在這里想念的是什么。

好的,我遇到了一個問題,本來應該回滾事務的異常發生在事務范圍之外。 如果我在包含異常的范圍內添加了@Transactional ,則回滾將正常進行。
propagation應該是Propagation.MANDATORY應該更改為Propagation.REQUIRED (默認設置)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM