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

Spring Boot操作MongoDB时如何将驼峰字段映射为蛇形键名存储

问题原因说明

@SerializedName是Gson序列化框架的专属注解,Spring Data MongoDB默认使用自研的MappingMongoConverter完成对象与BSON的转换,不会识别Gson的注解,因此配置不生效。


解决方案

根据你的使用场景可以选择以下两种方案:

方案1:单个字段指定映射名(适配你当前的场景)

你的字段名和数据库键名没有遵循标准驼峰转蛇形的对应规则(比如字段id要映射为class_id),直接使用Spring Data MongoDB提供的@Field注解指定存入数据库的键名即可,实体类修改如下:

import org.springframework.data.mongodb.core.mapping.Field;

public class Data {
    @Field("class_id")
    private Integer id;

    @Field("class_name")
    private String name;

    @Field("class_type")
    private String type;

    @Field("class_code")
    private String code;

    // 省略getter、setter方法
}

方案2:全局配置自动驼峰转蛇形(适合标准规则场景)

如果后续你的实体类字段和数据库键名遵循标准驼峰-蛇形对应规则(比如字段classId对应数据库class_id、className对应class_name),可以直接全局配置命名策略,不需要每个字段加注解:

  • 如果使用application.yml配置,添加如下内容:
spring:
  data:
    mongodb:
      field-naming-strategy: org.springframework.data.mapping.model.SnakeCaseFieldNamingStrategy
  • 如果使用application.properties配置,添加如下内容:
spring.data.mongodb.field-naming-strategy=org.springframework.data.mapping.model.SnakeCaseFieldNamingStrategy

配置完成后重启项目插入数据,即可得到你期望的存储格式。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 22:27:03