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

如何修改POJO类映射到MongoDatabase的存储字段名称?

问题根源

你当前使用的@JsonProperty是Jackson提供的JSON序列化注解,MongoDB默认的POJO字段映射规则不会识别该注解,会直接使用Java类的属性名作为MongoDB文档的字段名,所以才会出现全小写字段的情况。

解决方案

按照你使用的技术栈选择对应方案即可:

方案1:Spring Data MongoDB场景(最常用)

替换注解为Spring Data MongoDB专属的@Field注解,直接指定存储到MongoDB的字段名:

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

public class Student {
    @Field("NAME")
    private String name;

    @Field("ID")
    private Integer id;

    // 保留原有getters和setters
}

方案2:MongoDB Java Driver + Jackson序列化场景

如果你是通过Jackson把POJO序列化为JSON后再存入MongoDB,需要确保两点配置生效:

  1. 注册Jackson Codec到MongoDB客户端,让驱动使用Jackson做序列化
  2. 配置Jackson ObjectMapper 允许识别字段上的@JsonProperty注解,示例配置:
ObjectMapper objectMapper = new ObjectMapper();
// 开放字段访问权限,允许识别字段上的Jackson注解
objectMapper.setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY);
// 注册Jackson codec到MongoDB客户端
MongoClient mongoClient = MongoClients.create(MongoClientSettings.builder()
        .codecRegistry(JacksonCodecRegistry.builder().objectMapper(objectMapper).build())
        .build());

配置完成后保留你原有的@JsonProperty注解即可实现大写字段存储。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 22:27:05