JDBCMetadataStore 与事务管理器

JDBCMetadataStore vs transaction manager

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

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

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);
    }

}