Spring Data JPA, Hibernate @Table



我有一个问题:我的应用程序有一个MSSQL主机,其中有2个数据库。我的所有实体都查看基数:

  1. 并且一个实体应该查看基础
  2. 我可以通过在@Table参数(schema=databasename.schema(中指定基来实现这一点

有什么方法可以使@Table(schema(参数来自application.properties吗?

是的,这是可能的。查看以下属性:

<property name="hibernate.default_catalog" value="crm"/>
<property name="hibernate.default_schema" value="analytics"/>

您可以在弹簧引导application.properties中使用以下属性:

spring.jpa.properties.hibernate.default_catalog=crm
spring.jpa.properties.hibernate.default_schema=analytics

另请参阅@Table注释文档。当您设置schema属性时,hibernate将使用此指定的schema,否则它将使用您可以通过hibernate.default_schema提供的用户默认schema。

此外,您还可以尝试编写自定义架构名称解析程序。正如hibernate.schema_name_resolver财产文件中所述:

默认情况下,Hibernate使用org.Hibernate.方言.方言#getSchemaNameResolver。您可以通过提供SchemaNameResolve接口的自定义实现来自定义架构名称的解析方式。

相关内容

最新更新