我正在使用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
答案 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