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

自定义Repository查询时出现SpelQueryContext$SpelExtractor.size()错误

解决Spring Data JPA自定义查询报错:NoSuchMethodError: SpelExtractor.size()

问题现象

使用Spring Data JPA的@Query自定义查询或命名查询时,触发Bean创建失败,核心报错如下:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'pokemonrepository'
Caused by: java.lang.NoSuchMethodError: 'int org.springframework.data.repository.query.SpelQueryContext$SpelExtractor.size()'

但通过方法名自动生成的查询(如findAllByName)可正常运行。

问题原因

该错误本质是Spring Data组件版本不兼容:SpelQueryContext$SpelExtractor类的size()方法是在较新的Spring Data Commons版本中添加的,若项目中混合了不同版本的Spring Data JPA、Spring Data Commons(比如单独引入了与Spring Boot版本不匹配的Spring Data依赖),就会出现方法找不到的情况。方法名自动生成的查询无需解析SpEL逻辑,因此不会触发该错误。

解决办法

1. 统一Spring Data依赖版本(优先推荐)

如果使用Spring Boot,不要单独引入spring-data-jpa依赖,直接使用spring-boot-starter-data-jpa,它会自动管理所有相关依赖的版本,避免版本冲突:

Maven示例

<dependencies>
    <!-- 只引入Spring Boot Starter JPA,无需单独加spring-data-jpa -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <!-- 其他依赖 -->
</dependencies>

Gradle示例

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    // 其他依赖
}

2. 排查并排除依赖冲突

如果必须引入第三方库导致版本冲突,先通过依赖树命令查看冲突的组件:

  • Maven:执行mvn dependency:tree
  • Gradle:执行./gradlew dependencies

找到引入了旧版本spring-data-commons或spring-data-jpa的依赖,将其排除:

Maven排除示例

<dependency>
    <groupId>第三方库的groupId</groupId>
    <artifactId>第三方库的artifactId</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-commons</artifactId>
        </exclusion>
    </exclusions>
</dependency>

3. 清理缓存并重新构建

执行清理命令,确保依赖完全更新:

  • Maven:mvn clean install -U
  • Gradle:./gradlew clean build --refresh-dependencies

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 15:46:33