我正在使用liquibase根据Bert R recipe设置石英数据库表。
postgres的JOB_DATA列的正确类型是什么?
原始错误是
Caused by: org.quartz.JobPersistenceException: Couldn't retrieve trigger: 2
at org.quartz.impl.jdbcjobstore.JobStoreSupport.retrieveTrigger(JobStoreSupport.java:1538)
Caused by: java.lang.ArrayIndexOutOfBoundsException: 2
at org.postgresql.util.PGbytea.toBytes(PGbytea.java:76)
基本错误发生在PostgreSQlDelegate.java中,试图从qrtz_triggers表中读取JOB_DATA列。这个列的确只有\ x。
我更改了上面的liquibase文件,以便在我收到错误时将类型从BLOB更改为BYTEA
column "job_data" is of type oid but expression is of type bytea
石英属性文件包括作业存储的以下设置
# Job Store
org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.driverDelegateClass =
org.quartz.impl.jdbcjobstore.PostgreSQLDelegate
答案 0 :(得分:2)
列的数据类型应为 bytea 。简单的确认方法
在那里,您会发现job_data的数据类型为 bytea
现在,在将数据类型修改为 bytea 后面临的第二个问题,请查看此链接以查看它是否解决了问题? PostgreSQL - Quartz JDBC-JobStoreTX - getTriggersForJob - ArrayIndexOutOfBoundsException