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

Spring Boot中@NoRepositoryBean注解如何使用?出现cannot find symbol报错怎么解决

报错解决与@NoRepositoryBean正确使用方法

报错原因

你遇到的cannot find symbol @NoRepositoryBean报错由两个问题导致:

  • 导包错误:你当前仅引入了org.springframework.data.repository包,未导入注解对应的完整类路径,正确导入语句为import org.springframework.data.repository.NoRepositoryBean;
  • 场景不匹配:@NoRepositoryBean是Spring Data生态的专属注解,仅作用于继承了Spring Data Repository接口(或其子接口如JpaRepository、CrudRepository)的接口,如果你当前项目使用MyBatis作为持久层框架,不需要使用该注解,直接删除即可。

@NoRepositoryBean正确使用规则

该注解的作用是标记公共父级Repository接口,告知Spring不要为当前接口创建代理实现类,仅用于给其他业务Repository继承、复用公共方法。
正确使用示例如下:

import org.springframework.data.repository.NoRepositoryBean;
import org.springframework.data.jpa.repository.JpaRepository;
import java.time.LocalDateTime;
import java.util.List;

// 公共父接口,加注解避免Spring创建实例
@NoRepositoryBean
public interface BaseRepository<T, ID> extends JpaRepository<T, ID> {
    // 各业务Repository通用的公共方法
    LocalDateTime queryRecordCreateTime(ID id);
}

// 业务Repository继承公共父接口,Spring会为该接口生成代理实现
public interface YearReportRepository extends BaseRepository<YearReport, Long> {
    // 业务自定义方法
    List<YearReport> queryByYear(Integer year);
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 05:15:07