如何在 spring-data-jdbc 中指定表架构

Mad*_*Max 6 spring-data-jdbc

在我的项目中,我使用 spring-data-jdbc 版本 2.0.4.RELEASE,但我遇到了如何为表指定架构的问题。实体类看起来像这样

@Data
@Table(value = "alpha.op_organization")
public class OrganizationEntity {
   @Id
   private Long id;
   @Column(name="name")
   private String name;
}
Run Code Online (Sandbox Code Playgroud)

如果我尝试使用 jdbc 存储库方法保存实体,save如下所示

OrganizationEntity organization = new OrganizationEntity();
organization.setName("OrgName1");
organizationRepository.save(organisation)
Run Code Online (Sandbox Code Playgroud)

我遇到异常“关系 alpha.op_organization 不存在。相应的 sql 查询是

INSERT INTO "alpha.op_organization" ("name") VALUES (?)
Run Code Online (Sandbox Code Playgroud)

IE。事实证明,我们正在尝试在表“alpha.op_organization”中插入条目,而不是在模式 alpha 的表 op_organization 中插入条目。

我尝试自定义 NamingStrategy 以返回模式 alpha,但没有成功。

@Configuration
public class AppConfig extends AbstractJdbcConfiguration {
   @Bean
   public NamingStrategy namingStrategy() {
      return new NamingStrategy() {

         @Override
         public String getSchema() {
            return "alpha";
         }
      };
   }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法在 spring-data-jdbc 中指定表架构?

Jen*_*der 2

目前,执行此操作的方法是定义一个NamingStrategy. 取自此集成测试的示例:

@Bean
NamingStrategy namingStrategy() {
    return new NamingStrategy() {
        @Override
        public String getSchema() {
            return "other";
        }
    };
}
Run Code Online (Sandbox Code Playgroud)