缺少序列信息

时间:2020-01-06 10:31:10

标签: jpa spring-data-jpa db2 ibm-midrange db2-400

我正在使用Spring引导应用程序,该应用程序通过com.ibm.db2.jcc.DB2Driver驱动程序和Spring Data JPA连接到AS400数据库。 我使用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

缺少表SYSCAT.SEQUENCES的意思是,因为不需要它。 该应用程序工作正常,但错误困扰我。 据我所知,SequenceInformations仅在我在某个地方生成ID时才重要,而我不这样做。 此应用程序仅用于将数据从一个位置复制到另一位置,因此我仅使用JPA @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

2 个答案:

答案 0 :(得分:6)

您使用了错误的方言。请使用:

org.hibernate.dialect.DB2400Dialect

答案 1 :(得分:0)

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

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