使用r2dbc-mssql指定架构

问题描述

是否可以使用r2dbc-mssql属性文件中指定认架构?

该连接在以下情况下可以正常工作

spring:
  r2dbc:
    url: 'r2dbc:mssql://zzzzz.database.windows.net:1433/dbname'
    username: 'xxxxxx'
    password: 'xxxxxx'

但是我必须使用静态模式:

@Table("schemaname.foo")
public class Foo {

  @Id
  private Long id;

我在r2dbc-postgresql中找到了类似的东西: https://github.com/pgjdbc/r2dbc-postgresql/issues/37

解决方法

在Spring Boot应用程序中,我认为您可以执行sql语句来切换@PostConstruct类的@Configuration方法中的模式。

@Configuration
class DatabaseConfig{

  @Autowired
  ConnectionFactory connectionFactory;

  @PostConstruct
  void init(){
      Mono.from(connectionFactory.getConnection())
          .flatMap(c->c.createStatement("switch to your schema here,different database has different commands here").execute())
          .subscribe()
  }
}