1

根据文档,JDBCMetadataStore需要一个DataSourceTransactionManager实例,这是有道理的。如果我在应用程序中使用 JPA 作为主要事务管理器会怎样?我如何告诉JDBCMetadataStore在调用@Transactional方法时它应该使用哪个事务管理器- 假设我必须在应用程序中有 2 种事务管理器 bean。欢迎提出建议!

4

1 回答 1

2

我建议您扩展它JdbcMetadataStore并使用委托超级和@Transactional特定的 TX 管理器覆盖所有事务方法:

public class MyJdbcMetadataStore extends JdbcMetadataStore {

    public MyJdbcMetadataStore(DataSource dataSource) {
        super(dataSource);
    }

    @Override
    @Transactional("jdbcTransactionManager")
    public String putIfAbsent(String key, String value) {
        return super.putIfAbsent(key, value);
    }

}
于 2020-05-21T14:07:54.317 回答