Aki*_*len 6 java sql-server hibernate
每当我运行 hibernate 5 时,都会看到以下错误:
ERROR: Could not fetch the SequenceInformation from the database
com.microsoft.sqlserver.jdbc.SQLServerException: The "variant" data type is not supported.
Run Code Online (Sandbox Code Playgroud)
我以前从未听说过“变体”数据类型。或者它是数据类型的一个类别?没有把握。
我检查了所有表中的数据类型,这些是存在的:bigint、bit、date、datetime、int、numeric、varbinary 和 varchar。
这个错误可能来自哪里?还有其他地方我应该检查变体类型吗?
编辑:
我运行此查询select distinct data_type from INFORMATION_SCHEMA.COLUMNS以获取数据库中的所有数据类型,但未显示 sql 变体。这就是我确定没有的方式。
还有其他地方可以参考吗?
编辑2:
关于这一点的更多信息。该应用程序是一个 Maven 项目。我创建了一个普通的 java 项目并对同一个数据库运行了相同的代码,我没有收到任何关于 sql 变体类型的错误。
所以这个问题似乎与休眠依赖有关。我不明白,真的。这是我正在使用的依赖项:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.4.0.Final</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
好吧。所以,我检查了我在普通 Java 应用程序中使用的库,它是 Hibernate 5.3.7。我在 Maven 应用程序中使用的是 5.4.0。
因此,我将 Maven 应用程序中的休眠库更改为:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.3.7.Final</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
现在一切正常。没有抱怨一些奇怪的 Sql Variant 类型。
此问题也会影响 Hibernate 搜索 5.11.0。您应该使用 5.10.5.Final。
不幸的是,我没有适当的凭据在他们的问题跟踪器上向 hibernate 团队提出这个问题。希望他们中的一个人会看到这篇文章并解决它。我知道他们正在研究 hibernate search 6 和 hibernate ORM 6,所以这是个好消息!
此问题是 MSSQL JDBC-Driver 中的错误,请参阅
https://github.com/microsoft/mssql-jdbc/pull/442
如更改日志中所述,这对于版本 >=6.3.2 已修复
修复了 String 类型的 sql_variant 问题 #442
| 归档时间: |
|
| 查看次数: |
5574 次 |
| 最近记录: |