缺少序列信息

SequenceInformation missing

我正在使用 Spring 引导应用程序连接到 AS400 数据库,使用 com.ibm.db2.jcc.DB2Driver 驱动程序和 Spring Data JPA。 我使用 org.hibernate.dialect.DB2Dialect 方言。 当我启动应用程序时,出现错误

Could not fetch the SequenceInformation from the database
com.ibm.db2.jcc.am.SqlSyntaxErrorException: DB2 SQL Error: SQLCODE=-204, SQLSTATE=42704, SQLERRMC=SYSCAT.SEQUENCES;TABLE, DRIVER=4.26.14

意思是 Table SYSCAT.SEQUENCES 不见了,确实如此,因为它不需要。 该应用程序工作正常,但错误困扰着我。 据我所知,只有当我在某处生成 ID 时,SequenceInformations 才重要,而我没有这样做。 此应用程序仅用于将数据从一个地方复制到另一个地方,因此我只使用 JPAs @Id 注释而不使用 @GeneratedValue 注释。 我是否遗漏了 SequenceInformation 的一些用途? 有什么方法可以关闭对 SequenceInformation 的获取吗?

这些是我的应用程序属性:

spring:
  datasource:
    driver-class-name: com.ibm.db2.jcc.DB2Driver
    hikari.connection-test-query: values 1
    hikari.maximum-pool-size: 25
  jpa:
    database-platform: DB2Platform
    hibernate.ddl-auto: none
    open-in-view: false
    properties:
      hibernate:
        dll-auto: none
        dialect: org.hibernate.dialect.DB2Dialect
        naming-strategy: org.hibernate.cfg.ImprovedNamingStrategy

你用错方言了。请使用:

org.hibernate.dialect.DB2400Dialect

我已将方言从 DB2Dialect 更改为 DB2400Dialect,它对我有用。

##spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.DB2Dialect
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.DB2400Dialect