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);
}
}
根据文档,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);
}
}