为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:8.1.1.45
【操作系统】:win0
【CPU】: 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz
【问题描述】*: 无效的列名
2024-07-29 21:51:03.831 [] [main]INFO org.hibernate.annotations.common.Version:49 - HCANN000001: Hibernate Commons Annotations {5.1.0.Final}
2024-07-29 21:51:03.915 [] [main]INFO org.hibernate.dialect.Dialect:170 - HHH000400: Using dialect: org.hibernate.dialect.DmDialect
2024-07-29 21:52:35.252 [] [main]ERROR o.h.engine.jdbc.env.internal.JdbcEnvironmentImpl:420 - Could not fetch the SequenceInformation from the database
dm.jdbc.driver.DMException: 无效的列名
at dm.jdbc.driver.DBError.throwException(DBError.java:678)
at dm.jdbc.driver.DmdbResultSet.do_findColumn(DmdbResultSet.java:717)
at dm.jdbc.driver.DmdbResultSet.do_getString(DmdbResultSet.java:724)
at dm.jdbc.driver.DmdbResultSet.getString(DmdbResultSet.java:1588)
at org.hibernate.tool.schema.extract.internal.SequenceInformationExtractorLegacyImpl.resultSetSchemaName(SequenceInformationExtractorLegacyImpl.java:124)
at org.hibernate.tool.schema.extract.internal.SequenceInformationExtractorLegacyImpl.extractMetadata(SequenceInformationExtractorLegacyImpl.java:53)
at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentImpl.sequenceInformationList(JdbcEnvironmentImpl.java:403)
at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentImpl.<init>(JdbcEnvironmentImpl.java:268)
at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:114)
at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:35)
at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:101)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:237)
驱动类和方言包是:
<dependency>
<groupId>com.dameng</groupId>
<artifactId>Dm8JdbcDriver18</artifactId>
<version>8.1.1.49</version>
</dependency>
<dependency>
<groupId>com.dameng</groupId>
<artifactId>DmDialect-for-hibernate5.3</artifactId>
<version>8.1.1.49</version>
</dependency>
hibernate的版本是5.4.22
debug跟着代码发现这个sql(方言包里面取出的)是这样的:
select name from sysobjects where type$ = 'SCHOBJ' and subtype$ = 'SEQ';
但是hibernate5.4.22这个里面获取的列名为sequences_catalog,所以就报错了,请帮忙看看这个怎么解决,因为在安装数据库的驱动库中方言包只有DmDialect-for-hibernate5.3 没有更高版本的了。
跟代码时对应的两个截图:
您好 查询下数据库版本select * from v$version 看看