spring-boot整合quartz、postgreSql数据库

新项目用到postgresql数据库整合quartz。

开始启动时报错

建议:No operator matches the given name and argument type(s). You might need to add explicit type casts.
位置:117 [See nested exception: org.postgresql.util.PSQLException: ERROR: operator does not exist: character = boolean

查不到类似问题,找不到答案,感觉应该是数据库问题。

后面在异常里面找到quartz源码,有一段如下:

ps = conn.prepareStatement(this.rtp("SELECT * FROM {0}FIRED_TRIGGERS WHERE SCHED_NAME = {1} AND INSTANCE_NAME = ? AND REQUESTS_RECOVERY = ?"));
            ps.setString(1, this.instanceId);
            this.setBoolean(ps, 2, true);
            rs = ps.executeQuery();
            long dumId = System.currentTimeMillis();
            LinkedList list = new LinkedList();

感觉异常里面的转换失败应该就是这里出了问题。这时候就感觉应该是和quartz有关系。于是搜索“postgresql quartz”关键字。

找到了相关问题。后面在配置中添加了相关的代码。

spring:
  #quartz定时任务,采用数据库方式
  quartz:
    #相关属性配置
    properties:
      org:
        quartz:
          scheduler:
            instanceName: clusteredScheduler
            instanceId: AUTO
          jobStore:
            class: org.quartz.impl.jdbcjobstore.JobStoreTX
            driverDelegateClass: org.quartz.impl.jdbcjobstore.PostgreSQLDelegate
            tablePrefix: QRTZ_
            isClustered: true
            clusterCheckinInterval: 10000
            useProperties: false
            dataSource: quartz
          threadPool:
            class: org.quartz.simpl.SimpleThreadPool
            threadCount: 10
            threadPriority: 5
            threadsInheritContextClassLoaderOfInitializingThread: true
    #数据库方式
    job-store-type: jdbc  
  #postgresql 报错问题
  jpa:
    properties:
      hibernate:
        temp:
          use_jdbc_metadata_defaults: false

配置完成,项目启动成功。

你可能感兴趣的:(java,geecg,quartz,postgresql)