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

Spring Boot切换MySQL为MongoDB时@EntityScan注解如何修改?

适配MongoDB的Spring Boot主应用类调整方案

当你从MySQL切换到MongoDB时,原有的JPA相关注解(@EntityScan、@EnableJpaRepositories)就不再适用了——MongoDB用的是Spring Data MongoDB专属的注解体系,下面是具体的修改步骤:

1. 替换JPA相关注解

  • 移除针对MySQL/JPA的@EnableJpaRepositories和@EntityScan注解
  • 添加两个MongoDB专属注解:
    • @EnableMongoRepositories:作用类似@EnableJpaRepositories,用于扫描MongoDB的数据访问层Repository接口
    • @MongoEntityScan:替代@EntityScan,用于扫描带有@Document注解的MongoDB实体类

2. 修改后的主应用类代码

@EnableFeignClients(basePackages = {"com.saman.kamal.nimalservice"}) 
@EnableDiscoveryClient 
@SpringBootApplication(scanBasePackages = {"com.saman.kamal.nimalservice"}) 
@EnableOAuth2Client 
@EnableMongoRepositories(basePackages = {"com.saman.kamal.nimalservice.repository"}) 
@MongoEntityScan(basePackages = {"com.saman.kamal.nimalservice.domain"}) 
public class HuththaApplication { 
    public static void main(String[] args) { 
        SpringApplication.run(HuththaApplication.class, args); 
    } 
}

3. 关键注解说明

  • @MongoEntityScan:会自动扫描指定包下所有标记了@Document的类(比如你提供的EbankLog实体),让Spring Data MongoDB能识别这些实体并映射到MongoDB的集合中。
  • @EnableMongoRepositories:确保Spring能发现你定义的MongoDB Repository接口,自动生成数据访问的代理实现。

额外提示

请确认你的项目已经引入了spring-boot-starter-data-mongodb依赖,如果没有,需要在pom.xml(Maven)或build.gradle(Gradle)中添加对应依赖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:57:44