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
相关产品推荐
相关产品推荐

