MSSQL 模式和 Hibernate 5.1.0.Final(未找到表)

zde*_*ine 5 database sql-server orm hibernate jpa

我试图了解如何配置我的 Hibernate 以与我的 MSSQL DB 及其模式正常工作。

问题是在表验证期间,它会记录(对于每个表):

org.hibernate.tool.schema.extract.internal.InformationExtractorJdbcDatabaseMetaDataImpl
- HHH000262: Table not found SHARED_CONFIGURATION
Run Code Online (Sandbox Code Playgroud)

我调试了 Hibernate 以找出导致此问题的原因,并发现它调用了以下内容:

EXECUTE [mydb]..sp_columns N'SHARED_CONFIGURATION',N'',N'mydb'
Run Code Online (Sandbox Code Playgroud)

请注意,第二个参数是架构名称,并且传递了空字符串。当我尝试对 DB 运行此查询时,它返回空结果集。但是当我将 'dbo' 作为第二个参数传递时,结果集不为空(意味着 Hibernate 应该调用它)。

好的,所以我好像需要定义模式。但是在我的实体上的@Table 注释中设置 hibernate.default_schema 或设置模式都引发了异常:

Schema-validation: missing table [SHARED_CONFIGURATION]
Run Code Online (Sandbox Code Playgroud)

所以现在我想知道真正的问题是什么。我还想在我的数据库中设置默认架构,但不允许(无法更改用户“sa”,因为它不存在或您没有权限。)即使在使用用户“sa”本身执行时也是如此:

ALTER USER sa WITH DEFAULT_SCHEMA = dbo;
Run Code Online (Sandbox Code Playgroud)

请注意,任何驱动程序(JTDS,官方 MS 驱动程序。能够与数据库一起正常运行)?

Man*_*nza 1

我遇到了同样的问题并通过将属性设置hibernate.hbm2ddl.jdbc_metadata_extraction_strategy为解决individually