我有一个问题:我的应用程序有一个MSSQL主机,其中有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接口的自定义实现来自定义架构名称的解析方式。