You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SpringBoot项目本地启动报错:ResultSet中未找到INDEX_NAME列

问题描述

我有一个SpringBoot项目,该项目在其他两台电脑上均可正常运行,但在我的本地电脑启动时失败,报错信息为**"The column name INDEX_NAME was not found in this resultset"**(中文:结果集中未找到列名INDEX_NAME)。推测是无法读取数据库表的索引,使用的数据库为PostgreSQL,已尝试重装数据库甚至格式化电脑后重新部署,问题仍未解决。

错误栈信息
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'JaversFromStarter' defined in class path resource [org/javers/spring/boot/sql/JaversSqlAutoConfiguration.class]: Invocation of init method failed; nested exception is org.polyjdbc.core.exception.SchemaInspectionException: [INDEX_LOOKUP_ERROR] Failed to obtain relation index list when looking for indexes for relation jv_global_id
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1804) ~[spring-beans-5.3.21.jar:5.3.21]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620) ~[spring-beans-5.3.21.jar:5.3.21]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) ~[spring-beans-5.3.21.jar:5.3.21]
    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.21.jar:5.3.21]
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.21.jar:5.3.21]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.21.jar:5.3.21]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.21.jar:5.3.21]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:955) ~[spring-beans-5.3.21.jar:5.3.21]
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918) ~[spring-context-5.3.21.jar:5.3.21]
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) ~[spring-context-5.3.21.jar:5.3.21]
    at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:147) ~[spring-boot-2.7.1.jar:2.7.1]
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:734) ~[spring-boot-2.7.1.jar:2.7.1]
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:408) ~[spring-boot-2.7.1.jar:2.7.1]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:308) ~[spring-boot-2.7.1.jar:2.7.1]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1306) ~[spring-boot-2.7.1.jar:2.7.1]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1295) ~[spring-boot-2.7.1.jar:2.7.1]
    at com.provera.taskmanapi.TaskmanapiApplication.main(TaskmanapiApplication.java:16) ~[classes/:na]
Caused by: org.polyjdbc.core.exception.SchemaInspectionException: [INDEX_LOOKUP_ERROR] Failed to obtain relation index list when looking for indexes for relation jv_global_id
    at org.polyjdbc.core.schema.SchemaInspectorImpl.indexExists(SchemaInspectorImpl.java:115) ~[polyjdbc-0.7.6.jar:na]
    at org.javers.repository.sql.schema.JaversSchemaManager.addIndex(JaversSchemaManager.java:336) ~[javers-persistence-sql-6.6.5.jar:na]
    at org.javers.repository.sql.schema.JaversSchemaManager.addDbIndexOnOwnerId(JaversSchemaManager.java:100) ~[javers-persistence-sql-6.6.5.jar:na]
    at org.javers.repository.sql.schema.JaversSchemaManager.ensureSchema(JaversSchemaManager.java:59) ~[javers-persistence-sql-6.6.5.jar:na]
    at org.javers.repository.sql.JaversSqlRepository.ensureSchema(JaversSqlRepository.java:186) ~[javers-persistence-sql-6.6.5.jar:na]
    at org.javers.spring.jpa.JaversTransactionalJpaDecorator$1.doInTransactionWithoutResult(JaversTransactionalJpaDecorator.java:64) ~[javers-spring-jpa-6.6.5.jar:na]
    at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:36) ~[spring-tx-5.3.21.jar:5.3.21]
    at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140) ~[spring-tx-5.3.21.jar:5.3.21]
    at org.javers.spring.jpa.JaversTransactionalJpaDecorator.ensureSchema(JaversTransactionalJpaDecorator.java:61) ~[javers-spring-jpa-6.6.5.jar:na]
    at org.javers.spring.jpa.JaversTransactionalJpaDecorator.afterPropertiesSet(JaversTransactionalJpaDecorator.java:55) ~[javers-spring-jpa-6.6.5.jar:na]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1863) ~[spring-beans-5.3.21.jar:5.3.21]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1800) ~[spring-beans-5.3.21.jar:5.3.21]
    ... 16 common frames omitted
Caused by: org.postgresql.util.PSQLException: 此结果集中未找到列名INDEX_NAME。
    at org.postgresql.jdbc.PgResultSet.findColumn(PgResultSet.java:2957) ~[postgresql-42.3.6.jar:42.3.6]
    at org.postgresql.jdbc.PgResultSet.getString(PgResultSet.java:2814) ~[postgresql-42.3.6.jar:42.3.6]
    at com.zaxxer.hikari.pool.HikariProxyResultSet.getString(HikariProxyResultSet.java) ~[HikariCP-4.0.3.jar:na]
    at org.polyjdbc.core.schema.SchemaInspectorImpl.indexExists(SchemaInspectorImpl.java:107) ~[polyjdbc-0.7.6.jar:na]
    ... 27 common frames omitted
解决方案
  • 统一PostgreSQL版本:对比其他正常运行电脑的PostgreSQL版本,将本地数据库版本调整一致。旧版本的polyjdbc(如0.7.6)在查询索引时依赖INDEX_NAME字段,而高版本PostgreSQL中该字段已改为小写的indexname,版本不匹配会导致字段找不到。
  • 升级依赖版本:当前使用的javers-persistence-sql 6.6.5和polyjdbc 0.7.6兼容性有限,升级到Javers 7.x及以上版本,对应的polyjdbc版本会同步更新,适配PostgreSQL的字段名变更。
  • 关闭自动Schema初始化并手动创建索引:在application.properties中添加配置关闭Javers自动创建Schema:
    javers.sql.schema-management-enabled=false
    
    然后手动在jv_global_id表上创建所需索引,确保结构与其他环境一致。
  • 检查连接配置差异:确认本地数据库连接URL的参数(如时区、字符集、数据库版本适配参数)与其他环境完全一致,避免因配置差异导致查询结果字段名异常。

内容的提问来源于stack exchange,提问作者Lorentrs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 18:49:14